Issues When Using Microsoft Visual Studio 2005

This document lists issues you might encounter while using Microsoft Visual Studio 2005. 

For a list of breaking changes between Beta 2 and RTM, please go to https://go.microsoft.com/fwlink/?LinkId=51223

1.  Issues for all Visual Studio Products

2.  Microsoft .NET Framework
3.  Smart Device Programmability
4.  Source Code Control
5.  Crystal Reports
6.  Tools for the Microsoft Office System

1. Visual Studio

1.1   VC++ Visual Studio 2005 Beta 2 Project File fails to open 

When you use the final version of Visual Studio 2005 to open a Beta 2 C++ project that was last loaded on a computer with an installation location for Visual Studio that is different from that on the current computer, or if the project paths have changed, you might receive an error.

To resolve this issue

Edit the project settings file. Right-click on the grayed-out project node in the solution explorer and select "Edit <projectname>.vcproj", which will bring up the file in the XML editor. Change the value of the InheritedPropertySheets tag to "$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops", and then reload the project.

1.2   On Windows 2000, using Start with Application Verifier produces the message: "Application Verifier is not supported on the Operating System running on machine_name. Please upgrade to Windows XP or above." 

Windows 2000 does not support the Application Verifier.

To resolve this issue

Upgrade to Windows XP or above.

1.3   Start with Application Verifier generates the dialog box: "Application Verifier requires an updated system file that is not detected on your machine machine_name. Do you want to go to Windows download center to get the update?" 

Visual Studio setup does not install a system file that is required by Application Verifier.  If the required version of the file is not present on your computer's operating system, you must update it before you can use Application Verifier.

To resolve this issue

Select 'Yes' on the dialog to open the internet browser and show the update link on the Microsoft download center site. Install the required update. You also can access the Microsoft download center using this link:
https://go.microsoft.com/fwlink/?LinkId=49500

1.4   Toolbox in Distributed System Designers does not reflect the local Windows language setting until Toolbox is reset. 

In the Options dialog box, users can set Visual Studio to use the local Windows language.  However, the Toolbox in Distributed System Designers does not reflect this setting until the Toolbox is reset.

To resolve this issue

1) Close all Distributed System Designers (Application Designer, System Designer, Logical Datacenter Designer, and Deployment Designer).
2) Right-click inside the Toolbox and then click Reset Toolbox.
3) Reopen the Distributed System Designers you want to use.

1.5   Remote Debugging on Windows 98 and Windows Me  

Problem 1:

If using Visual Studio 2005 to remote debug with default transport to a Windows 98 or Windows ME computer that is part of a domain with a Windows Server 2003-based Domain Controller, the user may see the following error message approximately 10 minutes after starting the Windows 98/ME computer:

-------------------------
Microsoft Visual Studio
-------------------------
Unable to connect to the Microsoft Visual Studio Remote Debugging Monitor named '<machinename>'. Access is denied.

Cause: Server Message Block (SMB) signing is both enabled and required on Windows Server 2003-based Domain Controllers.

Problem 2:

If using Visual Studio 2005 on a Windows XP or later computer to remote debug to a Windows 98 or Windows ME computer, the user may see the following error message.

-------------------------
Microsoft Visual Studio
-------------------------
Unable to connect to the Microsoft Visual Studio Remote Debugging Monitor named ''. The Microsoft Visual Studio Remote Debugging Monitor on the remote computer cannot connect to the local computer. Unable to initiate DCOM communication. Please see Help for assistance.

Cause: "Remote Access for Anonymous Logon in DCOM" is disabled on the computer running Visual Studio 2005.

To resolve this issue

Problem 1:

1) Set the Domain Controller policy such that SMB signing is enabled but not required.
For information on how to do the same go to https://support.microsoft.com/?kbid=887429
2) Restart the Domain Controller
3) Restart the computer where Visual Studio 2005 is installed.
4) Restart the computer running Windows 98/ME

Problem 2:

To allow "Remote Access for Anonymous Logon in DCOM" on the computer running Visual Studio 2005, follow these instructions:
1) At a command prompt, type dcomcnfg, and then press ENTER. Component Services opens.
2) In Component Services, expand Component Services, expand Computers, and then expand My Computer.
3) On the toolbar, click the Configure My Computer button. The My Computer dialog box appears.
4) In the My Computer dialog box, click the COM Security tab.
5) Under Access Permission, click Edit Limits. The Access Permission dialog box appears.
6) Under Group or user names, click ANONYMOUS LOGON.
7) Under Permissions for ANONYMOUS LOGON, select the Remote Access check box, and then click OK.
8) Restart the computer.

1.6   Pressing F1 on a Web service provider endpoint results in "Information Not Found". 

When you press F1 while a Web service provider endpoint is selected on an application diagram, a relevant Help topic cannot be found.

To resolve this issue

In Help, search for "How to: Define Operations for ASP.NET Web Services".

1.7   Users should not store sensitive information in custom settings or in settings not defined as secure settings by SDM documents. 

Sensitive information stored in custom settings or in settings not defined as secure settings by SDM documents (such as .sdm and .ad files) will appear as plain text in these files.

To resolve this issue

When using the Settings and Constraints Editor, store sensitive information only settings that are designated as secure settings in SDM documents. For more information, see "How to: Create Custom Settings for Applications, Servers, Endpoints, and Zones" and "Considerations for Implementing Applications" in Help.

1.8   Starting the Itanium (IA64) native tools command prompt  

When installing the tools on Itanium (IA64), a shortcut for starting the Itanium (IA64) native tools command prompt is not created.

To resolve this issue

The Itanium (IA64) native tools command prompt can be started by doing the following:
1) Go to Start, click Run
2) Type cmd
3) At the command prompt, type <Your Visual Studio 2005 installation directory>\VC\bin\vcvars64.bat

1.9   Profiling and running instrumented modules from network shares is not supported 

Under default Visual Studio settings, running an instrumented binary from a network share results in an unhandled exception.

To resolve this issue

Copy or move the project or binary you wish to profile to your local hard drive.

1.10    Using Event Tracing for Windows (ETW) to collect event profiling data for IIS5.1 is not supported 

Trace profiling an application that targets IIS5.1 and enabling the collection of ETW events will silently fail in the UI and report an erroneous Error VSP1432 on the command line.

1.11   IA64 profiling is not supported 

IA64 profiling is no longer supported.

1.12   Stand-alone profiler does not support code coverage 

When you try to run code coverage on a stand-alone profiler installation, you will see an unhandled exception.

1.13   Running code coverage against an ASP.NET application may leave web.config in an altered state. 

When running unit tests against an ASP.NET project, the test engine needs to modify the web.config files. Sometimes these files are not cleaned up and can cause exceptions in subsequent test runs and application runs.

To resolve this issue

Restore the original web.config file from the backup that was created during the test run.

1.14   Support for ReportViewer Control is limited on Windows 98 

The Windows Forms ReportViewer control has limited support when used in applications running on Windows98. With this control, you can only view reports previously published on a SQL Server 2005 Reporting Services report server. You cannot use it to view client report definition (.rdlc) files in local processing mode.

1.15   Code coverage for ASP.NET will not work if the IIS worker process is running as SYSTEM 

Collecting code coverage data for ASP.NET will not work if the IIS worker process is running as SYSTEM.  Check MSDN for the name of the IIS worker process on your system because the name is different for different versions of IIS. You can use Task Manager to determine what user the worker process is running under.
Note: The unit tests will run correctly if code coverage is disabled.

To resolve this issue

Change the IIS worker process not to run as SYSTEM.

1.16   Trying to profile an ASP.NET application with forms authentication enabled results in an error

If you try to profile an ASP.NET application with forms authentication enabled, you will get a web site configuration error and the application will not run.

To resolve this issue

There is no known resolution.

1.17   Performing actions on Distributed System Designer diagrams while code is running will cause Visual Studio to stop responding. 

For example, adding applications to a system diagram in System Designer while the Debugger is running will cause Visual Studio to stop responding.

To resolve this issue

Stop code from running before performing actions on Distributed System Designer diagrams.

1.18   Trace profiling a shared dll will profile all processes using that dll 

If you have a shared dll and want to trace profile it, you might end up profiling all processes that are using it.

To resolve this issue

1) Turn off profiling on each process you do not want to profile using vsperfcmd -proccessoff:PID.
2) Set HKCU/software/microsoft/visual studio/8.0/VSPERF/Monitor/Settings/ProcessProfile=Off, start your target processes, and then enable profiling on all processes you want to profile using vsperfcmd -processon:PID
Note: When you have finished profiling, you must shut down all processes that are using the shared dll in order to shut down the monitor and flush the data to the report file.

1.19   How to trace profile Natively Generated (ngen'd) images 

Trying to instrument an ngen'd image will report an erroneous VSP1014 error.
The CLR will not load an instrumented managed binary that has already been ngen'd.

To resolve this issue

Once you have instrumented the managed binary itself and not the ngen'd image, you must do one of the following:

1) Delete the ngen'd image so that the CLR uses the instrumented binary
-or-
2) Regenerate the binary using ngen.exe.

1.20   Crash if the MarkProfile profiling APIs are used and the profiler monitor is not running

When using MarkProfile, CommentMarkProfile, or CommentMarkAtProfile that are available from vsperf.h, you will see an application crash if the profiler monitor is not running. This will be most noticeable if you add the API calls and then launch them under the debugger instead of the profiler.

To resolve this issue

Start the profiler monitor using "vsperfcmd -start:sample -output:foo.vsp"

1.21   Web projects: Types defined in a GAC'ed assembly cannot be visualized in class diagrams 

Class diagrams cannot show types in a referenced assembly if all the following conditions are true:
1. Class diagram resides in a web project.
2. The referenced assembly is installed under the Global Assembly Cache (GAC)
3. The referenced assembly is not installed under the framework directory root ("Microsoft.Net\Framework\<Version>\").

To resolve this issue

Visualize the referenced type from a non-web project.

1.22   Instrumented managed dll fails to load into a website project 

An instrumented managed user control hosted in a website will fail to load with the default security settings for .NET.

To resolve this issue

You must enable Full Trust for the local website to be able to load the instrumented dll.
caspol.exe -ag 1.2 -url https://localhost FullTrust

1.23   Application Verifier is not enabled for mixed mode C++ projects. Instead it will produce the following dialog box:

"Application Verifier is not supported for the selected debug mode. Please see supporting documentation for more information. Click on OK to continue debugging without verifier" 

Application Verifier is not enabled for mixed mode applications even though you can select it from the Debug menu.

To resolve this issue

Continue debugging without Application Verifier.

1.24   Profiler driver is not being initialized correctly on Windows 2000

The first time the profiler driver is used, it needs to initialize itself. If this initialization happens on Windows 2000 Server via remote desktop session, the driver will be initialized for future sessions but not for the current one.  If you try to start the monitor on the current session, you will see Error VSP1398 and the monitor will fail to start.

To resolve this issue

Do one of these:

1) Restart the computer.
-or-

2) Use remote desktop to connect to a different session on the same computer.

1.25   Test runs window: Users in "Controller users" group and not in "Admin users" are not able to connect to controller  

When a user is added to the "Controller users" group and not to the "Controller admin" group the change does not take affect until the controller service is restarted. As a result, the user cannot connect to the controller.

To resolve this issue

Restart the controller service.

1.26   Encoding changes might not appear when a file is reloaded in the editor. 

Visual Studio 2005 does not detect changes in encoding when a file is reloaded. If you have changed the encoding of a file outside of the current editor, or performed a source control operation that changed the encoding of a file open in the editor, Visual Studio reloads the file automatically. The contents of the file might display incorrectly after it has been reloaded in the editor.

To resolve this issue

  1. Close the file without saving the changes.
    • On the File menu, choose Open and then select File.
      • In the Open File dialog box, click the arrow adjacent to the Open button and click Open With.
        • From the list in the Open With dialog box, select the editor into which you want to open the file, such as the Binary or Resource editor. To open the file with a particular encoding, select an editor with encoding support, such as XML Editor with Encoding.
          • Click OK.
            • In the Encoding dialog box, select the correct encoding from the Encodingdrop-down list.
              • Click OK.

1.27   Product repair occurs when installing Setup project 

If Visual Studio 2003 is installed after Visual Studio 2005, then building a Setup Project from either version of Visual Studio causes product repair to occur. The product repair only occurs for users other than the one who installed Visual Studio 2003.

To resolve this issue

When the product repair occurs, allow it to complete. For the repair to be successful, it must be performed from a user account that did not perform the installation of Visual Studio 2003 and has admin privileges.

1.28   Office product fails to run after installing Visual Studio 2005 Tools for Microsoft Office project 

After installing a Visual Studio 2005 Tools for Microsoft Office add-in project that contains a Reg-free COM component, the Office product targeted by the add-in fails to run.

To resolve this issue

Reg-free COM is not supported for Visual Studio 2005 Tools for Microsoft Office add-in projects.

1.29   Setup and Deployment projects imported from Visual Studio 2003 fail to be signed when built 

Setup and Deployment projects imported from Visual Studio 2003 that have signing enabled will not be signed when built in Visual Studio 2005. The following message will appear in the Error List window at build time: "The file ' <filename> ' was not signed. The deployment project contains deprecated signing properties. See Help for more information."

To resolve this issue

To enable signing, you may invoke the Software Development Kit tool, Signtool, on the build output from a post-build step in the Setup and Deployment project. More information on how to do this is available by viewing the help topic associated with the build message referred to above. You can access help by highlighting the message in the Error List window and then pressing F1.

To remove deprecated signing project properties:
1. Double-click the message in the Error List window
2. In the dialog that appears, click 'Yes.' This will cause the deprecated signing project properties to be removed from your project file.

1.30   Certain bootstrapper packages available with Visual Studio 2005 target only 32-bit platform 

The bootstrapper packages for .NET Framework 2.0, SQL Server Express 2005, Microsoft Visual J# Redistributable, Windows Installer 2.0, and Windows Installer 3.1 available with Visual Studio 2005 target only 32-bit platforms. If a bootstrapper built with these packages is run on a 64-bit platform, the installation might block.

To resolve this issue

The bootstrapper packages for the 64-bit versions of the .NET Framework 2.0 and SQL Server Express 2005 redistributables will be made available on the Microsoft download center.

1.31   User Defined Types as Settings may cause unexpected behavior in the settings designer 

Using User-Defined Types as Settings might cause problems if the assembly in which the UDT resides is updated while the consuming project is open. If this scenario is required, you can workaround the problem by making the UDT assembly use incremental version semantics.

To resolve this issue

If the User Defined Type that is being used as a setting resides in a class library, incrementally version the library to mitigate the problem. If the User Defined Type resides in an EXE, the IDE must be closed and restarted for changes to the UDT to take affect.

1.32   No Forms property in "My" inside a User Control project 

My.Forms will not be available in a User Control project

To resolve this issue

There is no known resolution.

1.33   Cannot invoke an object's method through remote debugging if stopped on Sleep 

If you have the following code running on a remote computer, then attach to the running code via remote debugging, and break as execution is inside the call to Sleep(), you will be unable to evaluate members of the variable c.

c = New c1     'assume c1 is a valid class
While True
Threading.Thread.Sleep(1000)
End While

To resolve this issue

Step out of the Sleep(), you will then be able to evaluate objects normally.

1.34   Visual Studio 2005 Team Edition for Testers: Load Test Error Table Contains: "Could not Find Dependent Counter Needed to Apply Threshold Rule" 

The load test result viewer's Error Table contains an error with the message "Could not find dependent counter needed to apply threshold rule". The load test contains a threshold rule that compares one performance counter with another. This error is generated if the comparison performance counter does not generate an instance during a sampling interval.

To resolve this issue

Change the associated threshold rule to compare against a constant instead of another performance counter. This does not affect the results of the load test beyond failing to run the specified threshold rule and can be safely ignored.

Use the following procedure to change the counter:
1. Edit the load test and select Counter Sets/Load Test/Counter Categories/LoadTest:Request/Counters/Avg. Connection Wait Time/Threshold Rules.
2. Delete the Compare Counters Rule.
3. Right-click to add a Compare Constant rule.
4. In the rule, set Alert if Over to true, warning to .01 (10 ms) and critical threshold to .02 (20 ms).

1.35   Visual Studio 2005 Team Edition for Testers: Web test run fails with the error, "Object not set to an instance of an object" 

Running a coded web test with an unused data source fails with the error "Object not set to an instance of an object". This occurs because a data source is defined within a coded web test but it is not bound to any item in the test.

To resolve this issue

Remove the unused data source from the coded web test or bind a field from the data source to an item in the test by adding a DataBinding attribute to the test class.

1.36   Visual Studio 2005 Team Edition for Testers: Explicitly Set the Proxy Property of a SoapHttpClientProtocol Implementations 

If you are running a load test containing unit tests that call Web services, the unit test code should explicitly set the proxy property of the Web service proxy class that implements System.Web.Services.Protocols.SoapHttpClientProtocol. This prevents a performance bottleneck that can occur when the proxy must be automatically detected.

For example, if you have a Web service proxy class such as this:

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name="InstantOrderSoap", Namespace="https://tempuri.org/")]
public partial class InstantOrder : System.Web.Services.Protocols.SoapHttpClientProtocol {

}

then after creating the proxy object, and before using it, explicitly set the Proxy property:

InstantOrder orderCheck = new InstantOrder();
orderCheck.Proxy = new WebProxy("myproxy", true);

1.37   Cannot pass a structure to a variant property in an ActiveX EXE object 

On Windows 98, you cannot pass a structure to a variant property in an ActiveX EXE object. The problem is that on a clean Windows 9X computer, the System DLL rpcrt4.dll was not registered by default, so the operating system is missing the registration key [HKEY_CLASSES_ROOT\CLSID\{B5866878-BD99-11D0-B04B-00C04FD91550}]. The invocation fails because of this missing registration.

To resolve this issue

Go to C:\Windows\System and manually invoke RegSvr32.exe rpcrt4.dll.

1.38   New on a type parameter with cyclic constraints causes VB compiler to hang and increases memory allocations 

Pasting the code below in a console application will cause it to hang.

Class C1(Of U As U)    'the cyclic constraints here cause the later problem
End Class

Partial Class C1(Of U)
Dim x As New U        'Issue - this causes infinite looping and the memory usage keeps increasing till memory is no longer available

End Class

To resolve this issue

Remove the cyclic constraint.

1.39   Parameters to StartupNextInstanceEvent handler will not contain command line arguments if application is started using ClickOnce 

Parameters to StartupNextInstanceEvent handler will not contain the command line arguments of the second instance of the application if application is started using ClickOnce. You must use the My.Application.Deployment.ActivationUri property to get the command line arguments.

To resolve this issue

Use the ASP runtime classes to get the command-line arguments, as follows:

Imports System.Web

Dim commandLineArgs as NameValueCollection = _
HttpUtility.ParseQuery(My.Application.Deployment.ActivationUri)

1.40   VB compiler doesn't support InternalsVisibleTo attribute 

<Assembly: InternalsVisibleTo("Foo.Dll, PublicKeyToken=a29c01bbd4e39ac5")>

This attributute (among other things) exposes Friend types to other assemblies. This attribute is not supported by the VB compiler.

Some unit testing technologies that rely on this attribute for testing private types will not work as expected.

To resolve this issue

There is no known resolution.

1.41   Some documentation for vsperfcmd.exe is missing 

Documentation of vsperfcmd that describes common user scenarios is missing.

Here are some examples of common commands that you might use with vsperfcmd.exe:
vsperfcmd -start:sample -output:foo.vsp
vsperfcmd -start:trace -output:foo.vsp -counter:g,1,0,InstructionsRetired
vsperfcmd -launch:foo.exe -args:"input arguments" -gc:lifetime
vsperfcmd -attach:foo.exe -pf:1

1.42   My.Log is not available in a VB Web Control Library project. 

In a VB Web Control Library project, My.Log is not available.  Because My is per-project, My.Log will be available for WebUserControls inside a Web site project, but it will not be available for classes within Web Control Library projects that are consumed by a Website.

To resolve this issue

Use Trace.Write instead of the My.Log methods.

1.43   My.Application.Log.WriteEntry may throw an exception if user does not have File I/O permission. 

1) Create a new Console Application with the following code:

    My.Application.Log.DefaultFileLogWriter.CustomLocation = "D:\temp"
    My.Application.Log.WriteEntry("Foo")

2) Run the application

RESULTS:
Log file is created in D:\temp, but the directory D:\Documents and Settings\<username>\Application Data\Microsoft\WindowsApplication1\1.0.0.0 is also created if it does not exist. In the case that the user does not have permission to do this, an exception is thrown. This is likely to occur when using a class library in a Web application, because the ASP.NET process does not have write permission to any Application Data directory by default.

To resolve this issue

1) Remove the default FileLogTraceListener via app.config, and Reconfigure My.Application.Log to use a different TraceListener.
2) Listen to Unhandled Exception event and continue when the event happens.
3) Try/catch every logging call (or at least the ones that could conceivably be the first to execute).

1.44   References to 32-bit COM components may not work in VB and C# Applications running on 64-bit platforms  

Most existing COM components are only available for 32-bit platforms and will not run in a 64-bit process on a 64-bit platform (although they will run correctly in a 32-bit process on a 64-bit platform). VB and C# applications that reference these 32bit COM components will not run by default on a 64-bit platform because by default the application will launch as a 64-bit process.

The problem appears when a project with one or more COM references is:
1. Migrated to Visual Studio 2005 and executed on 64-bit platforms

-or-
2. Created using Visual Studio 2005 on 64-bit platforms.

In Visual Studio 2005, the VB and C# compilers use the platform target property to determine if the.exe or .dll should run in 32-bit or 64-bit CPU architecture mode. The default setting for this property in Visual Studio 2005 is set to 'AnyCPU', which indicates that the application can run in either 32-bit or 64-bit mode, depending on the host platform. In this situation you may see a message such as "Cannot instantiate class..." when you debug or run these applications.

To resolve this issue

Set the platform target property to 'X86' for your VB or C# projects that have references to COM components.

For C# Projects:
1.    Right click the project in the solution explorer and open 'properties'
2.    Choose the Build tab
3.    Set the Platform Target property to 'X86'

For VB Projects:
1.    Right click the project in the solution explorer and open 'properties'
2.    Choose the Compile tab
3.    Press the Advanced Compile Options... button
4.    Set the Target CPU property to 'X86'

Express Editions:
The VB and C# Express products do not expose the Target property inside the development environment. You will need to carefully modify the project file using a text or XML editor.
1.    Close the project and/or solution
2.    Select Open File from the File menu
3.    Navigate to the project directory, and highlight the project file
4.    Press the Open button, the project file should open in the XML editor
5.    Locate the first <PropertyGroup> section and add the following line:
<PlatformTarget>x86</PlatformTarget>
1.    Save the project file
2.    Reopen the project and/or solution using Open Project/Solution from the File menu
3.    Continue with development, debugging, and testing

Alternatively, if the application is targeted to 64-bit platforms, you can ensure that the COM controls added to the application have 64-bit equivalents on the development and deployment computers.

1.45   Using Windows Roaming Profiles may cause first time launch message to show on each startup. 

When any one of the Visual Studio family of products is used with Windows Roaming Profiles, the first time launch message that says "Visual Studio 2005 is configuring the environment for first time use. This might take a few minutes." might appear on every session startup. This might cause unnecessary slowdowns in startup performance.

To resolve this issue

Click on the Tools > Options... Select "Import and Export Settings", and change the path under "Automatically save my settings to this file:" to a path that is NOT under the "My Documents" directory.

1.46   Installation of an Add-in that accesses DTE.CommandBars before Visual Studio 2005 has been launched will lead to an Add-in load error 

After first installing Visual Studio 2005, if an Add-in is installed that tries to get DTE.CommandBars in its OnConnection, first launch of Visual Studio 2005 will result in the following message:

    The Add-in <Add-in name> failed to load or caused an exception.
    Would you like to remove this Add-in?

To resolve this issue

If you are installing Visual Studio 2005, after installation launch Visual Studio and shut it down again *before* installing any Add-ins 
If this Add-in was already installed and you encounter the above message, click "No" and close Visual Studio. In a Command Prompt, navigate to <VSInstallDir>\Common7\IDE and run the following command:
    devenv /resetaddin *

1.47   Web service references in Visual Basic or Visual J# class libraries might not reverse-engineer when building the class library is performed last. 

In this scenario, a Visual Studio solution contains a Visual Basic or Visual J# class library, which contains a Web reference to a Web service. The solution also contains an ASP.NET Web site, which has a reference to the class library. After these items are added to the solution, certain configuration file entries must be copied from the class library's App.config file to the Web site's Web.config file. If the class library is built after copying the configuration file entries but before adding an application diagram to reverse-engineer these items, only the ASP.NET Web site might be reverse-engineered on the diagram. Therefore, the Web service reference might not reverse-engineer as Web service consumer endpoint on the ASP.NET application and a connection to the referenced Web service might not be reverse-engineered. If the Web reference is for a Web service that is not already on the diagram, then an external Web service for the referenced Web service might not reverse-engineer.

To resolve this issue

1. After the application diagram is added, right-click the Web reference in the class library and choose Update Web Reference.
2. Rebuild the class library.

1.48   Changing Table locations may cause connection to fail 

When you change the location of a table to a different database at run time, ensure that the new database contains a table that uses the same name as the one found in the original report. If the table names do not match, the connection will fail.

To resolve this issue

Make sure that the new database contains a table that uses the same name as the one found in the original report

1.49   Do not use the Null string to set the viewer Selection Formula 

To set the viewer selection formula to display all of the records in a report, use the empty string instead of the null string. The null string fails to override the original report-selection formula.

To resolve this issue

The empty string is represented as "" or String.Empty. The null string is represented as null in C# or Nothing in Visual Basic.

1.50   Migrating projects encoded in Shift-JIS may result in corrupt characters 

Japanese characters encoded as Shift-JIS will not appear correctly in an ASP.NET Web Application that has been migrated from Visual Studio 2002 or Visual Studio 2003 to Visual Studio 2005

To resolve this issue

Before migration, convert all of your ASP pages to UTF-8

1.51   Namespace references lost when importing a project from Crystal Reports 9 or Crystal Reports 10 

References to the CrystalDecisions.ReportSource, CrystalDecisions.Shared, and CrystalDecisions.Windows.Forms assemblies are lost when a Windows Project from Crystal Reports 9 or Crystal Reports 10 is migrated to Crystal Reports for Visual Studio 2005.

To resolve this issue

Before you compile the application after migration, add the references manually.

1.52   Web service reference in a class library might not reverse-engineer when a Windows and ASP.NET Web project both reference that same class library. 

In this scenario, a Visual Studio solution contains an application diagram with an implemented Windows and ASP.NET application. The solution also contains a class library with a Web reference to a Web service. The Windows and ASP.NET Web projects both reference this class library. After the class library is built and the necessary entries are copied from the class library's App.config file to both projects' configuration files, the Web reference might not reverse-engineer as a Web service consumer endpoint on the Windows or ASP.NET application. A connection to the referenced Web service might also not reverse-engineer. If the Web reference is for a Web service that is not already on the diagram, then an external Web service for the referenced Web service might not reverse-engineer.

To resolve this issue

1. Close the application diagram.
2. Remove references to the shared class library from the Windows and ASP.NET projects.
3. Add the class library reference to the ASP.NET project.
4. Open the application diagram.
5. Add the class library reference to the Windows project.

1.53   Expanding data files in server explorer in FTP Webs can crash the IDE 

If you open a FTP web site and add a data file (MDB or MDF) to the App_Data directory, then open the Server Explorer window and expand the connection to the data file
under the Data Connections node, the IDE can crash or hang, and you may lose any unsaved data.

To resolve this issue

Develop the web site from a local file location using a file system or IIS web site, and use the Copy Web Site command to transfer files to and from the FTP location.

1.54   Printing or Exporting from Firefox may throw an exception 

An exception may be thrown when users export or print a report from a CrystalReportViewer control. This problem happens when the web page includes a CrystalReportViewer control and Microsoft Web Controls and is viewed in the Firefox web browser.

To resolve this issue

Set EnableEventValidation to False in the ASP page to allow users to print or export a report in Firefox.

1.55   Application Verifier is not enabled for mixed mode C++ projects. Instead it will produce this message:

"Application Verifier is not supported for the selected debug mode. Please see supporting documentation for more information. Click on OK to continue debugging without verifier" 

Application Verifier is not enabled for mixed mode applications even though you will be able to select it from the Debug menu. A dialog box will appear noting that Application Verifier is not enabled and will allow you to continue debugging without Application Verifier.

To resolve this issue

Continue debugging without Application Verifier.

1.56   Visual Studio 2005 Team Edition for Testers: Load Test Results are not Stored in the Results Database Despite Proper Configuration 

Load test results from a local run are not stored in the results database despite proper configuration of the load test. When this occurs, this message is displayed:
"The load test results database could not be opened. Check that the load test results database specified by the connect string for your Test Controller (or local computer) specifies a database that contains the load test schema and that is currently available."
The local load test results database is created during the initialization of the first local load test run. This error occurs if the user initiating the first load test run does not have sufficient privileges to create the database.

To resolve this issue

An administrator must initiate the first load test run to force the creation of the load test results database.

1.57   Visual Studio 2005 Team Edition for Testers: Load Test Results Stored in SQL Express might not be Accessible from Remote Computers 

The SQL Express configuration and the Windows Firewall might block remote access to load test results stored in SQL Express. A default installation for SQL Express disables remote access to the database. Load Controller setup automatically sets the SQL Express configuration and the Windows Firewall configuration to allow remote access to SQL Express. However, setup on makes these configuration changes if it also installs SQL Express. Visual Studio setup can also install SQL Express but does not automatically change the SQL Express and Windows Firewall configuration to allow remote access.

The following message is displayed when the load test results viewer is unable to remotely access to a load test result in SQL Express:

"Could not read result repository: Could not access the load test results repository: An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections."

To resolve this issue

Manually configure SQL Express and the Windows Firewall to allow remote access. Use the following steps to enable remote access to SQL Express:

1. Open the SQL Server Configuration Manager by clicking Start, All Programs, Microsoft SQL Server 2005, Configuration Tools, SQL Server Configuration Manager.
2. In the left pane of the SQL Server Configuration Manger, expand the node for SQL Server 2005 Network Configuration and select Protocols for SQLEXPRESS.
3. In the right pane, right-click Named Pipes and choose Enable.
4. Right-click TCIP/IP and choose Enable.
5. In the left pane, select SQL Server 2005 Services.
6. In the right pane, right-click SQL Server Browser and choose Properties.
7. Click the Services tab in the Properties dialog box.
8. On the Services page, set the Start Mode property to Automatic and click OK.
9. Right-click SQL Server Browser and choose Start.
10. Right click SQL Server (SQLEXPRESS) and choose Restart.

Use the following steps to configure the Windows firewall.

1. Open the Windows Firewall dialog box and click the Exceptions tab.
2. Click Add Program and Browse to find sqlbrowser.exe and click OK.
3. Click Add Program and Browse to find sqlservr.exe. Click OK.
4. Click Add Port and enter "SQL Service" for Name, 1433 for Port number, and select the TCP radio button.
5. Click OK on the Windows Firewall dialog

1.58   Interop support of Long (VT_I8) is limited to WinXP 

Latebound calls on Win2K or Win9x passing a Long (VT_I8) will fail. WinXP is the only supported platform for VT_I8 through OLE automation.

To resolve this issue

Use integer rather than long.

1.59   EnvDTE80.WindowKinds.vsWindowKindImmediate constant is incorrect 

The vsWindowKindImmediate constant will not return the correct GUID for the Immediate window

To resolve this issue

Use the following GUID in place of the vsWindowKindImmediate constant: {ECB7191A-597B-41F5-9843-03A4CF275DDE}
Alternatively, the following will get the correct Immediate Window GUID:
    DTE.Windows.Item("Immediate Window").ObjectKind

1.60   Shared Add-in wizard Setup project will not work on a computer that only has Microsoft Office 

Add-ins for Office require Extensibility.dll in order to run, which is not automatically included in the Setup project for Shared Add-ins.

To resolve this issue

In the Solution Explorer, right-click on the Add-in Setup project and select Add | Assembly. In the .NET tab, select Extensibility and press OK. Once the assembly is added, select it in the Solution Explorer and ensure that the "Register" property is set to "vsdraDoNotRegister"

1.61   Fonts and Colors options are not reflected immediately upon reset. 

A reset of environment settings can be performed by clicking Tools > Import and Export Settings... and choosing "Reset all settings". A reset of environment settings can also be performed by issuing the command "Tools.ImportAndExportSettings /reset" inside the Command Window. In either case, the fonts and colors options are not reflected until a restart of Visual Studio.

To resolve this issue

After performing a reset operation, restart Visual Studio.

1.62   Application Verifier is not supported for DLL based projects, ATL web service projects, and VC Smart Device projects . 

Application Verifier is not supported for the following scenarios:
1. Using Start With Application Verifier on a DLL project and loading it in an executable that is not part of the solution.
2. Changing the Command in Project Properties | Debugging to something other than the currently loaded project ($TargetPath). This applies to remote debugging as well.
3. Application Verifier is not supported for ATL web service projects as these run under a different process.
4. Application Verifier is not supported for VC Smart Device projects as these run under a different architecture.
Application verifier is enabled only for the exe projects loaded in the IDE.

To resolve this issue

For scenarios 1 & 2 above, load the project of the target executables in the IDE and then use Application Verifier. Using Application Verifier in all the above cases will work the same as a normal debug session (Debug | Start).

1.63   Web service reference in a class library might not reverse-engineer when a Windows and ASP.NET Web project both reference that same class library. 

In this scenario, a Visual Studio solution contains an application diagram with an implemented Windows and ASP.NET application. The solution also contains a class library with a Web reference to a Web service. The Windows and ASP.NET Web projects both reference this class library. After the class library is built and the necessary entries are copied from the class library's App.config file to both projects' configuration files, the Web reference might not reverse-engineer as a Web service consumer endpoint on the Windows or ASP.NET application. A connection to the referenced Web service might not also reverse-engineer. If the Web reference is for a Web service that is not already on the diagram, then an external Web service for the referenced Web service might not reverse-engineer.

To resolve this issue

1. Close the application diagram.
2. Remove references to the shared class library from the Windows and ASP.NET projects.
3. Add the class library reference to the ASP.NET project.
4. Open the application diagram.
5. Add the class library reference to the Windows project.

1.64   Visual Studio 2005 Team Edition for Testers: Web test run fails with the error, "Object not set to an instance of an object" 

Running a coded web test with an unused data source fails with the error "Object not set to an instance of an object". This occurs because a data source is defined within a coded web test but it is not bound to any item in the test.

To resolve this issue

Remove the unused data source from the coded web test or bind a field from the data source to an item in the test by adding a DataBinding attribute to the test class.

1.65   The DataBindings property of controls is not correct after copying and pasting a field from the Data Sources Window 

If you copy and paste (instead of Drag and Drop) fields from a database data source to generate controls on the Windows Forms designer, the data binding properties will be set to the table instead of the fields within the table. Object and web data sources are not affected.

To resolve this issue

For each control added to the Windows Forms designer, edit the properties and change the (DataBindings) property to the correct data source.

1.66   Installing VS on the same machine as SQL Server 2005 can result in VS utilizing the Business Intelligence profile 

Customers who install Visual Studio 2005 on the same machine as SQL Server 2005 may notice that they are not prompted to choose a profile when they first launch VS, and that the VS profile is set for Business Intelligence development. This occurs because SQL Server 2005 installs a version of Visual Studio to support Business Intelligence development (the Business Intelligence Development Studio) and sets the VS profile accordingly.

To resolve this issue

The VS profile can be altered at any time using the Import and Export Settings Wizard which is launched by selecting "Import and Export Settings..." in the VS Tools menu.

In the Wizard, select "Reset all settings", click Next >, choose "Yes, save my current settings", click Next >, choose the desired profile, e.g. "General Development Settings", and click Finish.

It may be necessary to restart VS for all of the new settings to take effect.

1.67   Shared Add-ins may not load on machines without an update 

Shared add-ins might not load in Word or Excel unless you update the computer on which the add-in is running.

To resolve this issue

For more information, check the Knowledge Base at https://go.microsoft.com/fwlink/?LinkId=52419

1.68   VS Content Installer fails when the C# Express Sku is uninstalled 

If the user installs C# Express Sku, then one of the Primary Sku's, then uninstalls the C# Express Sku, the VS Content Installer will fail upon launch.

To resolve this issue

Run Repair on Visual Studio from Control Panel | Add / Remove Programs

1.69   Installing a .addin file on non-English Windows Operating Systems may require a workaround 

If a machine is running a non-English Windows operating system in which any portion of the "Documents and Settings\All Users\Application Data\Microsoft\MSEnvShared\Addins " folder is localized, this path will not get recognized by the Add-in

To resolve this issue

1. In Visual Studio 2005, go to Tools | Options | Add-in/Macros Security
2. In the Add-in File Paths section, add the full path to the .addin file.

Alternatively, install the .addin file to [system drive]:\Documents and Settings\All Users\Application Data\Microsoft\MSEnvShared\Addins

2. .NET Framework

2.1  Microsoft Word-format Manual tests whose titles contain DBCS (double-byte character set) characters display incorrectly during and after the test run 

While you are running a manual test, the manual test [Running] page is displayed, and after the test run completes, the manual test results page is displayed. If the name of the manual test contains DBCS characters, both of these pages display the manual test incorrectly. They display what appears to be the raw HTML of the test. If you right-click the body of the test and then select Refresh, the test will hang for a few minutes and then turn blank.

To resolve this issue

Use only SBCS (single-byte character set) characters in the name of any Microsoft Word-format manual test. You can use DBCS characters in the Description property of the test and in the body of the test.

2.2   Wrong version of msvsmon.exe gets launched on 64-bit computer running 32-bit Visual Studio 2005 and SQL Server 2005. 

SQLCLR debugging will fail on a 64-bit computer, when Visual Studio 2005 (x86) and SQL Server 2005 (x86) are installed. The following message is displayed:

---------------------------
Microsoft Visual Studio
---------------------------
Unable to debug .NET code. Could not attach to SQL Server process on ''. The 64-bit version of the Visual Studio Remote Debugging Monitor (MSVSMON.EXE) cannot debug 32-bit processes or 32-bit dumps. Please use the 32-bit version instead.
---------------------------
OK
---------------------------

The 64-bit version of msvsmon.exe gets launched automatically because the operating system on the computer is 64-bit. The 32-bit version should be launched instead because both applications are 32-bit. This is an architectural problem that can not be fixed at this point.

To resolve this issue

The user can manually launch the 32-bit version of msvsmon.exe when trying to do SQLCLR debugging on the local computer.

It is not recommended that the 32-bit version of msvsmon.exe be registered to launch automatically, because this would break other 64-bit debugging scenarios.

2.3   AuthorizationStoreRoleProvider: Incorrect or obscure errors are returned from Authorization Manager 

The AuthorizationStoreRoleProvider depends on Authorization Manager. Not all error messages returned from AuthorizationManager indicate the root cause of a problem. Listed below are error messages that are known to be either incorrect or vague.

"COMException (0x8007052b): Unable to update the password. The value provided as the current password is incorrect."
This error is really an access denied error. If all of the following conditions are met, this error can occur: ASP.NET is deployed on IIS 5.0, Windows XP IIS 5.1, or in IIS 5.0 isolation mode on Windows Server 2003, the application is configured to use Integrated Windows Authentication, and the policy file is located inside of the directory structure of the current ASP.NET application. If ASP.NET is running as a local computer account and attempts to access a policy store in a remote AD or ADAM instance this error can also occur.

"More data is available"
This error really means that the policy store could not be found. If the connection string points at an ADAM instance, but the connection string references an ADAM partition that does not exist, this error can occur. For example, in the following connection string "LDAP://localhost:4000/Cn=storename, DC=Partition1", if Partition1 does not exist in the ADAM instance, this error will occur.

"The specified server cannot perform the requested operation"
This error really means that the specified server could not be found. If the connection string points at a non-existent server, or uses a port number that AD or ADAM are not listening on, this error can occur.

"ArgumentException: The parameter is incorrect"
This error message really indicates that an LDAP query group in Authorization Manager used to determine if a user is in a role is invalid.

To resolve this issue

For each error condition listed above, review the possible causes. If an application's configuration matches one of the possible causes, change or fix the application's configuration based on the information listed above.

2.4   SQL Server Express User Instances Should be Disabled on Shared Hosting Computers

ASP.NET 2.0 integrates with SQL Server Express 2005 to provide automatic creation of the database required by many of ASP.NET 2.0's new application services. This functionality relies on SQL Server Express' support for spawning server processes that run with the identity of either the interactive user or the identity of the worker process hosting ASP.NET. In un-trusted environments such as on a shared hosting server, the ability to spawn SQL Server worker processes should not be enabled due to the potential for unintentionally sharing data between ASP.NET applications.

To resolve this issue

If you are installing SQL Server Express using the standalone installer, you can use the advanced setup options to explicitly disable support for user instancing.

Alternatively you can manually disable user instancing for an existing SQL Server Express installation as follows:
1. While logged in as a local box administrator, open a command window by running cmd.exe
2. If osql.exe is not available from any directories listed in the PATH environment variable, change directories to the SQL Server Express directory that contains osql.exe.
3. Connect to the parent instance of SQL Server: osql -E -S .\sqlexpress
4. Issue the following Sql commands:
exec sp_configure 'show advanced option', '1'
go
reconfigure with override
go
exec sp_configure 'user instances enabled', 0
     go
reconfigure with override
go

2.5   Persistent cookies for forms authentication now use the same timeout setting as session based cookies. 

In previous versions of ASP.NET, persistent forms authentication cookies had a hardcoded lifetime of 50 years. In ASP.NET 2.0 persistent form authentication cookies have their expiration date set to the current date time plus the value of the "timeout" attribute from configuration. By default this means persistent cookies will have a lifetime of 30 minutes. If you want a longer lifetime you will need to increase the value of the "timeout" attribute. In ASP.NET 2.0 this means that forms authentication tickets stored in both session-based and persistent cookies will use the new timeout value

To resolve this issue

If different timeout values are desired for persistent cookies, a developer can get a reference to the forms authentication cookie after initially setting the cookie with a method like FormsAuthentication.SetAuthCookie. A developer can then get a reference to the cookie with a call to: Response.Cookies[FormsAuthentication.FormsCookieName]. On the resultant HttpCookie a developer can then set the Expires property to a different value.

2.6   Incorrect behavior of DeleteRole method on the AuthorizationStoreRoleProvider 

The DeleteRole method on the provider incorrectly throws an exception stating "Element not found" if an attempt is made to delete a non-existent role. The provider should be returning false instead. Also, if an attempt is made to delete a role that has existing users in it, the provider will return false instead of throwing an exception.

To resolve this issue

1. Wrap all calls to the provider's DeleteRole method inside of a try-catch block. This will ensure that any future fixes that re-enable exceptions when deleting populated roles will not impact existing code.
2. Check to see if the role exists prior to attempting to delete the role.

2.7   ASP.NET Profile feature can fail when using Xml serialization and a non-default application identity 

The default property serialization mechanism for the ASP.NET Profile feature is Xml serialization. If the ASP.NET process identity is something other than ASPNET (on IIS 5.0 and IIS 5.1) or NETWORK SERVICE (for IIS 6), then the Xml serialization process will fail with an exception stating "InvalidOperationException: Unable to generate a temporary class." The same problem will occur if using application impersonation. These exceptions occur because the XmlSerializer writes temporary class files into the %windir%\temp directory. By default this directory only grants " List Folder/Read Data" permissions to the default ASP.NET accounts. Non-default ASP.NET accounts are able to write temporary files into this directory, but do not have the necessary privilege to subsequently find the temporary classes for use by the XmlSerializer.

To resolve this issue

For secure environments, developers should use a different serialization mechansim - either binary serialization or string serialization. For applications where the potential for accidentally sharing temporary class files across applications is not high, the worker process or application impersonation identity can be granted the "List Folder/Read Data" privilege on the %windir%\temp directory.

2.8   ASP.NET Session State Limitations when using SSE 

SSE should only be used in development environments with ASP.NET Sql Server based session state because there is no Sql Server Agent service installed with SSE. As a result the session state cleanup job never runs and session state data will accumulate in the database. You can manually cleanup expired sessions by connecting to SSE and running the following command: "EXECUTE DeleteExpiredSessions".

To resolve this issue

Use one of the standard versions of Sql Server 2005 for production applications.

2.9   AuthorizationStoreRoleProvider: Default value for ApplicationName results in an error from Authorization Manager. 

Authorization Manager does not allow the "/" character in application names. In the absence of applicationName being set in configuration, the AuthorizationStoreRoleProvider follows the same logic used by other ASP.NET providers to determine a default value for applicationName. When running within ASP.NET, this results in a value that starts with the "/" character.

To resolve this issue

Always set the applicationName attribute in configuration when using the AuthorizationStoreRoleProvider within an ASP.NET application.

2.10   On Windows 98 and Windows ME, debugging an application that consumes a Web Service causes the application to hang 

In Visual Studio 2005, when debugging an application on Windows 98 or Windows ME that consumes a Web Service, the application hangs.

To resolve this issue

Disable the debugger component csm.dll, and use breakpoints to stop in the Web Service.

To disable csm.dll, please follow the instructions below:

1) On the Windows Start meu, select Run.
2) In the Run dialog, type regedit.exe.
3) Goto HKEY_CLASSES_ROOT\CLSID\{12A5B9F0-7A1C-4FCB-8163-160A30F519B5}.
4) Verify that you are on the right registry key by checking that InprocServer32\(default) has the value ' <drive>:\Program Files\Common Files\Microsoft Shared\VS7Debug\csm.dll'.
5) Delete the registry key (HKEY_CLASSES_ROOT\CLSID\{12A5B9F0-7A1C-4FCB-8163-160A30F519B5}).

2.11   C# Code Snippet shortcuts cannot contain non-spacing marks.  

C# Code Snippets are defined in XML within .snippet files. One of the possible tags in the schema is a <Shortcut></Shortcut> tag. Shortcuts can be used to quickly insert a snippet. To do so, a user simply needs to type the shortcut string and then press Tab.

Many unicode characters are allowed within shortcut strings, but non-spacing marks found in complex script languages are not recognized as valid shortcut characters. This means that some strings in complex script languages cannot be used as shortcuts. If a shortcut does contain a non-spacing mark, typing the shortcut string and pressing Tab will insert a Tab character but will not insert the snippet code.
Note: The snippet shortcut will still appear in IntelliSense.

To resolve this issue

1. Choose a Unicode shortcut name that does not contain a non-spacing mark.
2. Insert the snippet through the Snippet Picker UI instead of using shortcuts.

2.12   System.Net has removed the logic to time out a DNS resolve when the timeout is less than the timeout in the unmanaged API that is called by System.Net to perform the resolution. 

In previous versions of the .NET Framework, System.Net's DNS added timeout logic to the Dns type in order to circumvent the lengthy native timeout. Without an accurate DNS timeout, it is not possible to set accurate timeouts for other web requests. However, to implement this timeout, the DNS resolve is offloaded to a separate thread. If the thread pool level is low, the DNS resolve may wait for an available thread until it times out, resulting in an exception being thrown. To avoid this exception, the DNS timeout logic has been removed.

To resolve this issue

There is no known resolution.

2.13   SqlCacheDependency requires initialization with a call to System.Data.SqlClient.SqlDependency.Start 

Due to changes in how query notifications work with SQL Server 2005, developers must call the Start method on SqlDependency at least once prior to using SqlCacheDependency. A logical place to call Start is inside a web application's Application_Start method located in global.asax:

void Application_Start(object sender, EventArgs e)
{
System.Data.SqlClient.SqlDependency.Start("connection string");
}

The connection string must be the same one that will be used when issuing commands for use with SqlCacheDependency.

2.14   System.Net no longer adds a CRLF character when calling WebClient.UploadValues()  

In previous versions of the .NET framework, calls to WebClient.UploadValues() would add a CRLF to the uploaded content resulting in server application failures. The CRLF characters violate the application/x-www-form-urlencoded content type encoding scheme, as described in the HTML 4.01 specification. The CRLF is no longer added.

To resolve this issue

Use WebClient.UploadData() to add the CRLF and recompile your application or fix the server application to not expect the CRLF character.

2.15   UriBuilder no longer clears the Fragment or Query properties after they are set  

UriBuilder is a type that allows building a Uri instance piece by piece. In previous .NET Framework versions, Query properties and Fragment properties could not be set at the same time.  This error has been fixed in version 2.0. Query and Fragment properties are now set without having any fields inadvertently cleared. Applications that have worked around the previous behavior may need to adjust their logic to avoid erroneous behavior.

To resolve this issue

There is no known resolution.

2.16   The permissions demanded before applying the values present in the system.net element of an application configuration file have changed.  

The permissions required to apply the settings present in the System.Net element of an application configuration file are changed from previous .NET framework versions. The permissions required to apply values from the configuration file are now the same as those required by the associated property when changing the setting in code.

To resolve this issue

There is no known resolution.

2.17   Sending an FTP request followed by an FTP request over SSL (FTPs) to the same directory throws a file cannot be found exception 

If an application issues a FTP request to a server, and then issues another FTP request, with SSL enabled to the same server and path, the second request will fail. A file not found exception will be thrown. However, if the second request is not to the same path, the request will succeed.

2.18   WebRequest.ServicePoint.Address demands unrestricted web permission only when the service point in question is a proxy server  

This new demand prevents applications running in partial trust from discovering network proxy addresses. Partially trusted applications using ServicePoint.Address API may get a SecurityException if the address points to a proxy server.

To resolve this issue

Use HttpWebRequest.Address

2.19   Exceptions to Parity between 32-bit and 64-bit behavior for Visual Studio and .NET Framework 

1. Front Page Server Extensions for IA64 WOW64    

When using .NET Framework 1.1 to author a website on a remote IA64 computer running .NET Framework 1.1, FrontPage will not be a supported mechanism. Some basic functionality will work via the fileshare mechanism.

2. J# does not support running on native 64-bit. J# code can only run in WOW64 on 64-bit platforms.    

3. SQL Server Express is not supported on 64-bit for .NET Framework 2.0.

4. There are no peformance or scalability guarantees for high-load ASP.NET applications running on .NET Framework 1.1 in WOW64 for IA64.

5. Data breakpoints do not work with Visual Studio 2005 running on IA64 in WOW64.    

6. In Visual Studio 2005, the Edit and Continue debugger feature does not work on native 64-bit environment. It does work in 64 -bit WOW environments.

7. In Visual Studio 2005, VC ATL exceptions:    

- Build system doesn't register dlls targeting 64-bit on wow64

- Error ""%1 is not a valid Win32 application"" when debugging default ATL Server project on 64-bit computer.

- Executable to debug and URL are not prepopulated for ATL Server projects with 64-bit configurations

- Internet Explorer does not come up with .srf file specified by user when debugging 64-bit ATL Server project.

- Debugger type for ATL Server 64-bit configuration defaults to local windows debugger instead of web service debugger

- Debugging properties are not propagated to new configurations in a project. This means, for example, that if you start out with an ATLServer project in x86 and then create a 64-bit configuration for it, debugging will not work without changing the debuggee to be Internet Explorer.

8. There is no support for interop debugging (managed + unmanaged mixed-mode debugging) in native 64-bit environment. It does work in 64-bit WOW environments.

9. Some MDAs are not supported on 64-bit for example: Re-entrancy, LoaderLock, PInvokeStackImbalance

10. MMX intrinsics are not supported by the IA64 and x64 C++ compilers.

11. Inline assembly is not supported by IA64 and x64 C++ compilers.

12. Most High Level Language constructs are not supported by x64 MASM.
MASM does not support IA64, but we ship Intel's assembler (ias.exe)

13. In Visual Studio 2005, VC++ compiler switch /ARCH:SSE is not supported by x64 and IA64 VC++ compilers.

14. The System.Diagnostics.Process.MainModule and System.Diagnostics.Process.Modules APIs will fail if running under the WOW64 on a 64bit child process.

15. 32bit and 64bit COM+ serviced components with the same GUID/CLSID cannot be registered at the same time.

16. 64-bit SDK does not include native DBGCLR. DBGCLR will be WOW64 only.

17. 64-bit SDK does not include a native DEXPLORE.EXE. DEXPLORE.EXE will be WOW64 only.

18. There are no bootstrapper manifest packages for x64 and IA64

There is no 64-bit bootstrapper for ClickOnce or other applications. On any 64-bit computer that does not have .NET Framework installed, if you try to install a ClickOnce application, it fails with the message "This version of the .NET Framework 2.0 is not supported on a 64-bit operating system. Contact your application vendor."

This even happens for applications that are authored as 32-bit only and would have run in WOW64.

19. Visual Studio 2005 does not install on IA64    

Visual Studio 2005 will not install on IA64 (no design time support for IA64). Visual C++ will have a native IA64 command line tools installer.

20. Only Visual Studio Team System will allow building applications that target IA64    

21.P/Invoke signatures with blittable types are treated differently on 64-bit because P/Invoke is implemented differently on 64-bit, hence there are cases where incorrect P/Invoke signatures that accidentially worked on 32-bit don't work on 64-bit.

22. Visual Studio 2005 Tools for Office is not supported on 64-bit.
    

2.20   When performing a refactoring operation in a C# web site, build errors may be reported when none actually exist 

In certain cases, when performing a refactoring command in a C# web site that contains no build errors, the user may get a warning indicating that the project or one of its dependencies does not currently build and that references may not be updated.
This dialog can be safely ignored by clicking on the Continue or Preview buttons. The refactoring will succeed and all references will be updated.

The following are examples of common project configurations in which this warning will be shown:
- Web projects migrated from previous versions of Visual Studio, which contain a global.asax file in the web directory and a global.asax.cs file in the App_Code directory.
- Web projects in which web pages reference web user controls which in turn reference types declared in the App_Code directory.

To resolve this issue

There is no known resolution.  However, the warning can be safely ignored.

2.21   System.Net now registers a default FtpWebRequest implementation that may cause applications using their own FTP component to break  

Prior to .NET Framework version 2.0, applications could register a component to handle FTP requests using System.Net's extensible pluggable protocol framework. Components for handling different web requests are registered by associating the component with a specific URI prefix. Any web request that matches that prefix is then handled by that component. In .NET Framework 2.0, System.Net now supports an FtpWebRequest component that is registered by default for the "ftp:" prefix. Any applications that are registering for this prefix (prior to this release) could now be broken because the prefix (FTP) is already taken.

To resolve this issue

Update the application configuration file to remove the default FTP protocol component prior to registering your own FTP component:
<system.net>
<webRequestModules>
<remove prefix = "ftp:" />
</webRequestModules>
</system.net>

2.22   In .NET Framework 2.0, GlobalProxySelection.Select behaves differently than in version 1.1 when an empty System.Net tag is present in the machine.config file  

In version 1.1 of the .NET Framework, specifying an empty System.Net element in the machine.config file, GlobalProxySelection.Select returns an empty web proxy instance indicating that no proxy is to be used. In version 2.0, the new default is that the system proxy settings (same as what is specified in Internet Explorer) will be used in this case.

To resolve this issue

Modify the machine.config file to disable the default proxy as shown below.
<system.net>
<defaultProxy enabled="false" />
</system.net>

2.23   System.Uri does not include the IPv6 scope ID with the host.  

In previous .NET Framework versions, if you created a Uri instance using an IPv6 address, the scope ID is always included with the host address. The scope ID refers to the index of a local network adapter, and has no meaning for a remote host. The scope ID also uses a '%' character in its syntax, which conflicts with the Uri escaping format of '%hh'. Including the scope ID in the host breaks System.Uri's ability to interoperate with other URI parsers and resolvers. In version 2.0, System.Uri no longer includes the scope ID with an IPv6 host in a Uri instance. System.Uri has also added a new property, DnsSafeHost, which will return the scope ID with an IPv6 host address.

To resolve this issue

Use Uri.DnsSafeHost which will return the scope ID with an IPv6 host address

2.24   Specifying a cluster as a remote proxy through System.Transactions configuration may throw a TransactionException during cluster failover 

If a cluster is specified as a remote proxy in configuration by setting the DistributedTransactionManagerName to a cluster, a TransactionException may be thrown during cluster failover.

To resolve this issue

To specify a cluster as a remote proxy, use the Component Services MMC to configure MSDTC to use the cluster as the remote MSDTC.

2.25   The message, "Microsoft C# 2005 IntelliSense has encountered a problem" can appear when performing various actions in the IDE. 

In certain cases, the message "Microsoft C# 2005 IntelliSense has encountered a problem. We are sorry for the inconvenience" can appear while performing various actions in the editor. The reason in a subset of cases is there is a failure with retrieving the source data.

Some examples of actions that could trigger this message include:
- Renaming an external alias.
- Performing a "find all references" in a web project with no 'runat="server"' attribute.

This is a non-fatal condition. Clicking the send report button will allow a user to safely continue working as expected and no data will be lost.

To resolve this issue

There are two possible options to turn off display of all non-fatal error messages from the C# language service. To do this, modify the registry under the registry path:

[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\CSharp\Options\Editor]

(1) "Watson_ReportExceptions"=dword:00000001
Adding the following registry key with the specified value will disable error reporting completely.

Note: Using this registry key and turning off all non-fatal error messages from the C# language service can potentially prevent gathering feedback on scenarios not related to this failure.

(2) "Watson_DeferSendingUntilLater"=dword:00000000
Adding the following registry key with the specified value will turn off the display of the message but will continue to send feedback to Microsoft. The IDE will be unresponsive for a brief period as information is collected to send.

2.26   NullReferenceException thrown trying to get the transaction's DistributedIdentifier during transaction promotion 

Attempting to get the DistributedIdentifier on a Transaction while the transaction is promoting may cause a NullReferenceException to be thrown.

To resolve this issue

There are two ways to work around this issue.

Ensure that access to the transaction is synchronized.

-or-

Ensure that the transaction has promoted before checking the the DistributedIdentifier property.

2.27   ASP.NET Web Service proxies generated using Add Web Reference will all use the same URL taken from the configuration file even if the service has multiple endpoints with different URLs 

When adding a Web Reference in Visual Studio 2005, the URL of the service is automatically picked up from the AppSettings section in the configuration file. If the web service has multiple endpoints with different URLs, multiple proxy types will be generated but they will all use the same URL value taken from the configuration file.

To resolve this issue

There are two possibilities:
1. Edit the WSDL document and break out each service into a separate document.

-or-
2. Edit the configuration file to add a key for each Web service and then read the values out in your code using System.Configuration.ConfigurationSettings.AppSettings. Set the URL property on your proxy instances using these values.

2.28   Support for Nullable<T> by default in generated ASP.NET Web Service proxies can break existing code when proxy is re-generated 

When importing a schema that contains the nullable="true" attribute for an ASP.NET Web Service, the generated proxy will contain Nullable<T> types, whereas previously the attribute was ignored. This change may cause design time or runtime breaks in applications.

To resolve this issue

Possible workarounds are to avoid regenerating your proxy types, to recompile your code using the new Nullable<T> pattern, or to change the schema to not use the nullable="true" attribute.

2.29   Setting the Proxy property to null on a web service proxy instance does not cause the request to go directly to the server 

Setting the Proxy property to null on a web service proxy instance should force the request to bypass any web proxy server settings and go directly to the server. However, this functionality does not currently work. The null value will be ignored and any configured web proxy server settings will be used instead.

To resolve this issue

You can set the Proxy property on the underlying WebRequest directly by deriving from the proxy type and overriding the GetWebRequest method:

protected override WebRequest GetWebRequest(Uri uri)
{
WebRequest req = base.GetWebRequest(uri);
req.Proxy = this.proxy;
return req;
}

2.30   Using .NET Remoting and Runtime Serialization across different versions of the .NET Framework 

When exchanging data between an application running on one version of the .NET Framework and an application running on another version (using .NET Remoting or Runtime Serialization), exceptions may be encountered. These exceptions indicate that certain types are incompatible across the different versions of the Framework - that is, it is impossible to send them from one version of the Framework to another.

.NET Framework 2.0 includes a technology called Version Tolerant Serialization that eliminates this problem. However, previous versions of the Framework still face this issue. Thus, a patch will be made available that adds some Version Tolerant Serialization capabilities to the .NET Framework 1.1. This patch will require Service Pack 1. After installing the patch, an application running on the patched Framework will be able to communicate with an application running on .NET Framework 2.0 without encountering this versioning issue. There are no plans to provide such a patch for .NET Framework 1.0.

It is worth noting that Version Tolerant Serialization only addresses versioning when using Binary Serialization, either directly or through .NET Remoting. When using SOAP serialization (either directly through the SoapFormatter class or through .NET Remoting) across different versions of the Framework, the versioning issues discussed above may still be encountered.

To resolve this issue

To obtain this patch, please see the following Knowledge Base article: https://support.microsoft.com/?kbid=907262.

2.31   Specifying a non default trace listener for System.Transactions tracing does not work in partial trust 

Specifying a specific trace listener for System.Transactions tracing in the configuration is not supported in partial trust and will cause an exception to be thrown.

To resolve this issue

The default trace listener is supported in partial trust, so if no listener is specified in configuration, the traces will be caught by the default listener and printed to debug.outputstring. These traces can be viewed in partial trust by using DBMon.exe.

2.32   Date and Time calculations in Web Services or XML Serialization scenarios may be incorrect after migrating to .NET Framework 2.0 

.NET Framework 2.0 changes the way dates and times are written to and read from XML. This change mostly affects the following scenarios:
- Using times with an unspecified time zone or times in the UTC time zone
- Interoperability scenarios with 3rd-party software that writes out time values to XML without specifying a time zone or specifying the UTC time zone

The changes may cause certain date and time calculations and comparisons to become incorrect. In these cases, it may be necessary to revert to the earlier date/time behavior.

To resolve this issue

To revert to the earlier date/time behavior, apply the following configuration change:

<system.xml.serialization>
<dateTimeSerialization mode="Local" />
</system.xml.serialization>

2.33   Windows User Profiles for ASP.NET Automatic Database Creation with SQL Server Express and IIS 

The ASP.NET automatic MDF creation process for SQL Server providers using SQL Server Express (SSE) and IIS only works when IIS is running either as the local ASP.NET computer account, or as NT AUTHORITY\NETWORK SERVICE. The automatic creation process also works when a developer is interactively developing using Cassini (i.e. file based webs). However, when developing against IIS using either a different local computer account, or a domain user account, the automatic database creation process will fail because these accounts do not have a Windows user profile available on the web server.

To resolve this issue

There is no resolution for this issue. Automatic database creation with SSE for IIS-based websites will only work for the ASPNET and NETWORK SERVICE accounts.

2.34   Unicode Surrogate Behavior with ASP.NET Providers that use SQL Server 7.0 or 2000 

ASP.NET providers that use SQLServer are constrained to the level of Unicode surrogate support provided by SQLServer 7.0 and SQL Server 2000. SQL Server 7.0 and 2000 store and retrieve surrogate pairs losslessly. However, there is no linguistic comparison for surrogates. Surrogate characters are ignored during comparison operations and during uniqueness checks when using these versions of SQL Server. For example this means the SqlMembershipProvider will consider two usernames that only include surrogate characters to be identical. This behavior will lead to a uniqueness constraint violation if an attempt is made to create a second user with a username that differs from an existing user only in surrogate characters.

To resolve this issue

There is no known resolution for these versions of SQL Server.

2.35   FileWebRequest.PreAuthenticate only returns false 

Types that inherit from WebRequest inherit a PreAuthenticate property. This property is used to enable sending authentication information along with the request without waiting for a challenge from the server. FileWebRequest does not support preauthentcation, so its PreAuthenticate property should always return false. In previous .NET Framework versions, if the PreAuthenticate property was set to true by an application, it would return true when its value was later queried. This is no longer the case. FileWebRequest's PreAuthenticate property will always return false.

To resolve this issue

Users should not use the PreAuthenticate property on FileWebRequest.

2.36   Using generic types with .NET Remoting and SOAP Serialization 

The .NET Remoting technology supports both binary and SOAP serialization - that is, Remoting messages may be represented in a Microsoft-specific binary format or as SOAP XML. However, generic types (which are a new feature in .NET Framework 2.0) may only be used with binary serialization. The usage of generics with SOAP serialization is not supported, either through .NET Remoting or by using the SoapFormatter class directly.

To resolve this issue

There is no known resolution for this issue.

2.37   When performing a refactoring operation in a C# web site, build errors may be reported when none actually exist 

In certain cases, when performing a refactoring command in a C# web site that contains no build errors, the user may get a warning indicating that the project or one of its dependencies does not currently build and that references may not be updated.
This dialog can be safely ignored by clicking on the Continue or Preview buttons. The refactoring will succeed and all references will be updated.

The following are examples of common project configurations in which this warning will be shown:
- Web projects migrated from previous versions of Visual Studio, which contain a global.asax file in the web directory and a global.asax.cs file in the App_Code directory.
- Web projects in which web pages reference web user controls which in turn reference types declared in the App_Code directory.

To resolve this issue

There is no known workaround however the warning can be safely ignored.

2.38   Versioning features do not work in some cases when using Generic types with .NET Remoting or Binary Serialization 

Both .NET Remoting and Binary Serialization can work in a loosely-coupled mode (selected by setting FormatterAssemblyStyle to Simple, includeVersions to False and strictBinding to False), where the version of the assembly of a serialized type does not have to match the version of the assembly that the type is loaded from on deserialization. This feature exists in order to make versioning easier. For example: a .NET Remoting server can be updated without having to update the clients.

However, there are cases when this mechanism fails. Specifically, when using Generic types, if the version of the assembly of the Generic parameter types changes, deserialization may fail even in loosely-coupled mode. For example: when deserializing a generic type MyType1 with a type parameter of type MyType2, if the version of the assembly containing MyType2 is different on deserialization than it was on serialization, deserialization may fail.

To resolve this issue

To work around this limitation, either avoid using Generics in .NET Remoting / Binary Serialization if the versioning scenario is important, or use the Assembly Binding Redirection feature of the .NET Framework to redirect the request to load a non-existent version of the assembly to a version that actually exists on the machine performing the deserialization. Another possible workaround is to use the AssemblyResolve event to detect when the assembly load fails and to retry loading the assembly by using only its partial name.

2.39   When KeepAlive is enabled on a FtpWebRequest, issuing a directory listing command followed by a command to retrieve a file causes the file path that will be sent in the request to be altered. 

When the KeepAlive property is set to true on a FtpWebRequest, issuing a directory listing command followed by a command to retrieve a file causes the file path that will be sent in the request to be altered. The path for the requested file will be appended with an additional path delimiting character. This behavior has adverse effects for only some FTP servers and will cause such servers to return a file not found error.

To resolve this issue

Set the KeepAlive property to false on the request that issues the directory list command and then set KeepAlive back to true for subsequent retrievals.

3. Smart Device Programmability

3.1   F11 into a DLL function is not working for X86 SmartDevice Project 

1. Create a Win32 smart device project Dll with a function DllFunc with any piece of code with this function exported by the dll targeting x86 platform.
2. Create a Win32 smart device project exe that does a LoadLibrary on this dll and invoked the DllFunc added to the same solution. Make sure this is set as the startup project.
3. Compile, Deploy and Debug the solution.
4. Try to step into (F11) into the DllFunc. F11 turns into F10 on this special DllFunc() gotten from GetProcAddress and only on x86 platform.

To resolve this issue

View DllFunc on the debugger window to get the hex address and then setting the breakpoint on the disassembly.

3.2   Managed attaching to a native process does not return an error 

1. Create a native Console SmartDevice Project.
2. Hit Ctrl F5.
3. Select Tool \ Attach To Process.
4. Select the Smart Device Transport & your target device.
5. Select Managed debugger in the Debug engine selection dialog.
6. Select your native process & attach.
7. You will observe no messages.

To resolve this issue

There is no known resolution.

3.3   Applying filter in break mode to an already existing breakpoint causes the breakpoint to be ignored. 

1) Create a Native application with the following code
void foo(void)
{        
}        

int _tmain(int argc, _TCHAR* argv[])
{
    int i = 0;

    foo();

    return 0;
}
2) Set a location breakpoint on "return 0;"
3) Set a function breakpoint on foo() at design time.
4) F10 to get the application into break mode.
5) Open the breakpoint window and edit the filter property of function breakpoint (by including the filter ProcessName or ThreadName)
6) Continue (F5)
7) The function breakpoint is not hit and instead we break at "return 0" statement.

The above scenario illustrates that modifying a design time breakpoint by editing the filter properties at break mode causes the breakpoint to be ignored.This is true for all kinds of breakpoints.

To resolve this issue

Set the breakpoint and apply the filter at design time itself. This applies only to ProcessName, ThreadName filters as ThreadId and ProcessId are not known at design time.

F10/F11 do not work properly in scenarios illustrated by example below.

Example Code Snippet

1 int i = 0;
2 while (i < 1000) { i++; }
3 return 0;

Steps:
-Press F9 on line 1 and then after the breakpoint is hit on this line press F10
-Now the control is on line 2
-Press F10 yet again

The issue after performing the above steps is that the debugger would stop/break at line 3 and not at line 2. That is, the breakpoint on line 2 gets ignored for repeated F10.
Please note that this happens for all loop constructs that span a single source line.

To resolve this issue

Place a breakpoint with F9 on the source line with the while loop (line 2). Then the debugger would break at each F10 on line 2 while stepping through the while loop (till i increments to 1000) .

-or-

If code can be edited, re-organize the above code as follows and everything would work as expected.
    1 int i = 0;
    2 while (i < 1000)
    3 { i++; }
    4 return 0;

3.5   Native assert dialogs for Smart Device applications may render buttons off the screen 

When an assert dialog is thrown by a Visual Studio 2005 C++ Smart Device application on a Pocket PC or Smartphone, the buttons on the dialog may render off the screen

To resolve this issue

Use the scroll buttons/keys of the Pocket PC or Smartphone to manually scroll to the button.

3.6   "Copy if newer" Property semantics for Smart Device projects 

In smart device projects, newness of a dll or exe file is determined by comparing the Win32 versions.
- If the device-side version is less than that of the desktop, the file is copied.
- If the device-side version is greater than that of the desktop, the file is not copied.
- If the checksums are different, the file is copied.

Newness of files other than dll and exe is based solely on checksum.
Newness is not based on timestamp or size.

To resolve this issue

There is no known resolution.

3.7   Visual Studio 2005 will connect to an ActiveSync device if there is an error connecting to a TCP/IP device.  

When one device (e.g. PPC) is connected through ActiveSync and you want to connect to a WinCE device (e.g. CEPC) through TCP/IP, if the TCP/IP connection to WinCE device fails for some reason, Visual Studio 2005 will connect to the device connected through ActiveSync.

To resolve this issue

Disconnect the device connected through ActiveSync before attempting TCP/IP connection to another device.

3.8   Deploying an MFC dll with automation support and dynamically linked to MFC library will fail with the error 0x8007007e while registering. 

While deploying an MFC dll project with automation support and dynamically linked to MFC library, Visual Studio 2005 deploys the dll along with required dependent dlls to device under project folder. LoadLibrary() used for registering the dll looks for dependent libraries in the directory where conman components are located and then in \Windows directory. For this reason the dll registration fails.

To resolve this issue

Manually move or copy the required dependent dlls from the project folder to \Windows directory on the device.

3.9   Connectivity to Device Emulator unstable when using wireless networks that have DHCP servers configured with short lease times 

On wireless networks, TCP/IP connectivity to the device emulator through Virtual Switch driver could be unstable. This is caused by the interaction of the DHCP server implementation, the Virtual Switch driver, and the 802.11 specification.

To resolve this issue

For stable connectivity to device emulator one of the following transports could be used.
1. DMA transport

-or-
2. TCP/IP transport over loopback adapter.

3.10   MUI: Localized remote tools fail to connect to device emulator when run under non-matching system locale 

When a localized version (e.g. Japanese) of Visual Studio 2005 is installed on a English MUI OS, remote tools will fail to connect to the device emulator. This is because remote tools always use the system locale. For the same reason, when two different locales of Visual Studio 2005 (e.g. Japanese and English) are installed side-by-side on a English MUI OS, remote tools will always connect to the English device emulator.

To resolve this issue

Change the system locale to match the Visual Studio 2005 locale.

3.11   Debugging experience sometimes is bad with default project settings for SmartDevice VC++ applications since /Os complier option is set. 

The default project settings of SmartDevice VC++ Project has the compiler optimization option /Os set. /Os (Favor Small Code) minimizes the size of executable files and DLLs by instructing the compiler to favor size over speed. This could result in a bad debugging experience at times due to the code generated for this setting. For example, the debugger could enter both the if and else statements while stepping.

To resolve this issue

Modify the compiler optimization setting "Favor Size or Speed property" from /Os option to Neither.
Steps
1) Open the project's Property Page dialog box.
2) Click the C/C++ folder.
3) Click the Optimization property page.
4) Modify the "Favor Size or Speed" property to Neither.

This would achieve a better debugging experience. However the size of the executable would increase a little.

3.12   Build Errors when Compiling a Compact Framework 1.0 Application that has a form marked for Localization. 

If you are developing an application that requires to be localized and is targetting Version 1.0 of the Compact Framework, you will get an error about the missing SDK.

Message:
"Localization of projects targeting .NET Compact Framework 1.0 requires version 1.1 of the .NET Framework SDK, which is not detected on this machine."

To resolve this issue

Version 1.1 of the .NET Framework SDK does not ship inside the Visual Studio 2005 product. It needs to be downloaded and installed.

Use this page to download the SDK from.
https://msdn.microsoft.com/netframework/aa569263.aspx

3.13   Drag-n-Drop of SqlCEResultSet DataSource does not generate code for the controls in the designer code file 

Drag-n-Drop a SqlCEResultSet DataSource from the DataSource window on a device windows forms designer does not generate the code for the controls in the designer code file (e.g. Form1.designer.cs).
This will occur as follows:
1. Control generation option set to DataGrid: Code for creating and initializing the DataGrid will not be generated in the designer code file.
2. Control generation option set to Details: Code for creating and initializing the controls in the Details View will not be generated in the designer code file.

To resolve this issue

Any one of the following are sufficient:
1. Before Drag-n-Drop: Edit any property of the form either from the Properties window or from the context menu on the design surface.
E.g. Right-Click on design surface and turn off "Show Skin". Repeat to turn "Show Skin" back on.

-or-
2. Before Drag-n-Drop: Add any control to the form from the Toolbox.

-or-
3. After Drag-n-Drop: Edit any property of the form either from the Properties window or from the context menu on the design surface.

-or-
4. After Drag-n-Drop: Add any control to the form from the Toolbox.

3.14   Deploying an MFC ActiveX control which is dynamically linked to MFC library will fail with the error 0x8007007e while registering. 

LoadLibrary() API used for registering the ActiveX control looks for dependent libraries in the directory where conman components are located and then in \Windows directory. For this reason the ActiveX control registration fails.

To resolve this issue

Copy the required MFC dlls to \Windows directory on the device. For example, if Visual Studio 2005 is installed on C: drive, MFC dlls for armv4 processor could be found under C:\Program Files\Microsoft Visual Studio 8\VC\ce\Dll\armv4.

3.15   One or more static text controls in a device project does not appear at run time. 

When dialog based MFC applications are executed on smart devices, one of the static text controls does not appear at run time on the device. The reason might be one of the following.

1. Use of wizard generated code for creating a MFC based dialog application for smart devices and the dialog contains more than one static text control  added by the developer.
-or-
2. The custom developed code for VC++ application targetting smart devices contains support for "Resolution Aware"ness.

To resolve this issue

When wizard generated code for a dialog based MFC application targeting smart devices is used, by default the wizard generates code for a "Resolution Aware" application. The resolution aware application uses the DRA(Device Resolution Aware) APIs. The generated code calls the API DRA::RelayoutDialog() in order to support the landscape and portraite modes.

The API DRA::RelayoutDilog() requires that each of the static text controls must have unique IDs. However by default when the developer adds static text controls by drag and drop on the form, all the IDs for static text controls are generated as IDC_STATIC.

To get all the controls displayed at run time, modify the IDs for these static text controls as IDC_STATIC_1, IDC_STATIC_2, IDC_STATIC_3,..and so on, making them unique IDs. This will ensure that all the static text controls appear at run time for the "Resolution Aware" applications.

In order to change the ID of a static text control,

1. Select the control on the form.
2. right click and select properties.
3. Select the "ID" Property.
4. Change IDC_STATIC to a unique identifier as for example IDC_STATIC_2,IDC_STATIC_3 and so on for every static text control.

For a complete description of DRA::RelayoutDialog() refer to

https://msdn.microsoft.com/library/ms838174.aspx

3.16   Smart device Winsock server running on a device receives OnConnect callback notification. 

The smartdevice socket server implementation has a OnConnect() and OnAccept() method implemented using CSocket or CAsyncSocket targeting WinCE. When a client establishes a connection to this server hosted in the device, the server receives both OnAccept() and OnConnect() notifications.

To resolve this issue

In order to avoid receiving the OnConnect() notification in the server do the following

Before the call to Accept() on the server socket

1. Call AsyncSelect method using the events that the server socket is subscribed to. That is if "socket" is the object for the server socket then
    socket.AsyncSelect(FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CLOSE);
Note that all the events are used other than the FD_CONNECT to explicitely mask the Connect event in the sever.

2. If there is a need for the server socket to mask other events then, use the list of specific events that the server socket is interested in, for example if the server socket intended not to receive events for read operation then remove FD_READ also from the list of events in the call to AsynchSelect method as 

    socket.AsyncSelect(FD_WRITE | FD_OOB | FD_ACCEPT | FD_CLOSE);

masking FD_CONNECT and FD_READ events.

Please refer to this MSDN library page for a complete description of ASyncSelect method behavior.

3.17   eVC4Project can not be opened in Visual Studio 2005 by double-clicking on .vcw file. 

The developer has a device project created using eVC4.  After the installation of Visual Studio 2005 he is trying to open the eVC4 project in Visual Studio 2005 by double clicking on the eVC4 workspace file "project.vcw".

To resolve this issue

The standard eVC4 projects are not registered as Visual Studio 2005 projects.  In order to convert these eVC4 projects into Visual Studio 2005 compatible solution files do the following:

1. Open Visual Studio 2005.
2. From the File | Open , click on Project/Solution.
3. In the Open Project dialog box, navigate to the vcw file, select the file, and click open.
4. Select "Yes" for convert and open this project question.

3.18   Marshalling Structures on devices returns "NotSupportedException" if Structure contains reference types.  

In a Devices project, the SizeOf statement in the code below will throw a NotSupportedException:

Imports System.Runtime.InteropServices.MarShal
Module Module1
Structure S1
Public RefType As String
End Structure
Sub Main()
Dim sz As Integer
Dim struct As New S1
struct.RefType = "strings are reference types"
sz = SizeOf(struct)
End Sub
End Module

To resolve this issue

Apply an attribute to the reference type so it's marshalled correctly. Here's an example:
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=3)> Public x As String

For more information, please read the documentation on the 'MarshalAsAttribute'.

3.19   'Save As' does not display the path selection dialog box on x86 or SH4 platforms.

 

When we click the wizard generated 'Save As' option from the application menu ( File > Save As ) in a native MFC project, the 'Save As' dialog box does not appear.

To resolve this issue

Use the 'GetSaveFileName' function in the common dialog box library.
For example to create a filename for a CWinApp derived class, you must:

Create a message map entry and register your handler for ID_FILE_SAVE_AS command.
This can be done in the following manner:
- Using IDE:
    1. Right Click on the 'Save As' menu item. Select 'Add Event Handler' option.
    2. Fill in the name, description of the handler. Select the class with which to associate the handler.
    3. Now select 'Add and Edit' option to create the appropriate entries. The code that needs to be written
     in the handler has been discussed below.

- Editing the source files.
    1. Add a entry of type ON_COMMAND(ID_FILE_SAVE_AS, your_handler) between BEGIN_MESSAGE_MAP and END_MESSAGE_MAP macros.
    2. Add the handler as 'afx_msg void your_handler();' in the header file for the appropriate class.
    3. Implement this function as a member function to this class in the source using the ideas given below.

- The code for the handler should do the following things, in order:
    1. Declare a OPENFILENAME structure and initialize the appropriate fields( See the documentation on OPENFILENAME.)
    2. Call the GetSaveFileName function with this a reference to this structure.
     This throws up the filename selection dialog.
    3. The 'lpstrFile' field of the structure contains the filename that was selcted using the path selection dialog box.

- The handler can use this selected name for further use.

3.20   In native debugging, F11 does not work for class constructors on x86  

Stepping into a constructor call in native debugging does not work when targeting a CEPC x86 device.

Example:
class Foo
{
private:
int i;
public:
Foo()
{
    i = 0;
}    
};

int _tmain(int argc, _TCHAR* argv[])
{
    Foo *f = new Foo(); // F11 on this statment should step into the constructor but instead a "No source available. Show Disassembly?" window pops up.
    return 0;
}

Please note that this issue is applicable only to x86 architectures.

To resolve this issue

Set a breakpoint directly in the constructor and then press F5.  The code in the constructor needs to be debugged on x86 device.

3.21   Incorrect message while deploying a CAB file to a device or emulator that has missing wceload.exe 

Wceload.exe performs installation tasks for .cab files on Pocket PC and Smartphone.
Deployment of a .cab file to a device or emulator with missing wceload.exe will fail with the message, "The system cannot find the file specified".

To resolve this issue

Manually copy the matching wceload.exe to device under \Windows directory.

3.22   Intermittent connectivity loss while deploying or debugging an application on device emulator using TCP transport over Virtual Switch driver.  

This happens due to an issue with Virtual Switch driver.

To resolve this issue

For stable connectivity to the device emulator use DMA transport.

3.23   Cannot step across process boundaries 

Repro Steps:
1. Create a VC++ -> Smart Device -> Win32 SmartDevice Project
2. In the project creation wizard, chose PPC 2003 SDK and Windows Application type
3. Build project
4. Set breakpoint on the last statement in WndProc (return 0;)
5. F5
6. On reaching breakpoint, see call stack
7. Press F10 twice to go out of function
8. Stepping out of WndProc returns error "Unable to step" as the caller is in another process

To resolve this issue

Stepping across processes is not supported. The user can do F5 instead of F10 on the last line to let the debugger run & avoid getting this error.

3.24   Incorrect LookUpBinding behavior exhibited by ComboBox control in EditViewDialog of the generated Data Forms 

Incorrect LookUpBinding behavior exhibited by ComboBox control in EditViewDialog of the generated Data Forms.

For instance this behavior may be exhibited on performing the following steps:
1. Create a PPC Magneto Device VB Project
2. From Server Explorer, create a connection to the Northwind SDF Database
3. From Data Source Window, create a datasource containing all tables of the Northwind SDF Database
4. Drag and Drop the Orders table as Data Grid
5. In the Data Source Window, change the control type of Orders.[Customer ID] to comboBox
6. Using the DataGrid smart task, Generate Data Forms for Orders
7. In the Form1.vb code file, add the following line
   "OrdersTableAdapter.Update(Me.NorthwindDataSet.Orders)"
   as the last statement in the following functions:
   - NewMenuItemMenuItem_Click
   - OrdersDataGrid_Click
8. Open the EditViewDialog Form
9. Edit the Customer_IDComboBox properties to set the following:
   Value of DataSource: CustomersBindingSource
   Value of ValueMember - Customer ID
   Value of DisplayMember - Company Name
   Value of Data Bindings::Selected Value: OrdersBindingSource - Customer ID
10. Build and Deploy to emulator
11. On the emulator, click on a record to bring up the SummaryView of the order
12. Click Edit to bring up the EditView for the Order

Expected Result:
   The comboBox should display the Company Name corresponding to the Customer ID for the selected Order

Actual Result:
- The comboBox displays the first company name in the list of the company names.
- On clicking OK, the order gets modified with the customer id corresponding to the first company name

To resolve this issue

Cut and paste the contents of OrdersEditViewDialog_Load function just after InitializeComponent function call inside the OrdersEditViewDialog constructor.

4. Source Code Control Integration

4.1   Renaming a folder under FrontPage Source Code Control causes files underneath to become uncontrolled 

If you are working on a remote web site that uses FrontPage versioning control and you rename a folder with source controlled items inside, all items in that folder will appear uncontrolled until you close and re-open your web site.

To resolve this issue

Close and re-open your web site after renaming the folder

4.2   If you open a solution from source control that contains a multi-level IIS web, you might need to add read permissions for IIS to the parent folders in the web in order to debug 

When you open a solution from source control that contains IIS web sites, VS only grants IIS read access to the target path of your URL. However, in order to debug IIS web sites, IIS needs read access to each folder in the virtual path of the URL. So if you open a solution that contains a web site with more than one level (e.g. https://localhost/MyWebs/Web1), you might need to grant read access to IIS on whatever folder your parent web (e.g. https://localhost/MyWebs) points to in order to debug the web site.

To resolve this issue

In Windows Explorer, add "Read" permissions for the ASP.NET user account to the parent folders in your URL. And if you are using Windows Server 2003, the NETWORK SERVICE account also requires read permissions to the folder. For example, if you open a solution from source control containing "https://localhost/MyWebs/Web1", navigate in Windows Explorer to the directory that "https://localhost/MyWebs" points to and add permissions to this folder. Or, you can choose to open your solution to a different location on your computer where the Users group has read access (By default, the My Documents directory and its subfolders do not grant read access to the Users group).

5. Crystal Reports

For additional information concerning Crystal Reports for Visual Studio 2005, please visit us at: https://www.businessobjects.com/products/reporting/crystalreports/net/vsnet.asp

6. Microsoft Visual Studio 2005 Tools for the Microsoft Office System

6.1   Visual Studio Tools for Office does not support multipart XML schemas 

Visual Studio Tools for Office only supports XmlMaps that are based on a single primary schema, even though Microsoft Office Excel supports XmlMaps that can be composed of a primary schema and optional supporting schema.

To resolve this issue

There is no known resolution.

6.2   WordDynamicControls sample does not load controls when reopened 

When using the WordDynamicControls sample, adding controls and then closing and reopening the document will sometimes result in the added controls not being saved.

To resolve this issue

There is no known resolution.

6.3   Both VBA and XLM (Excel 4.0 Macro) code runs when a workbook opens in the designer  

If you have Visual Basic for Applications (VBA) or Excel 4.0 Macro (XLM) code in your workbook event handlers, the code will be executed while the workbook is open in the designer.

To resolve this issue

To ensure that no VBA or XLM code runs while you customize your workbook using Visual Studio Tools for Office, you should remove any VBA or XLM code associated with your workbook before creating a project based on your workbook.

6.4   Installing Visual Studio Team System on a computer with only Microsoft Office XP installed causes security dialogs to be displayed when Word or Excel is started 

When you start Word or Excel after installing Visual Studio Team System on a computer with only Office XP installed, the following Office security dialog will be displayed:

VSTOWordAdaptor.dll [or VSTOExcelAdaptor.dll]
contains macros by
Microsoft Corporation

Macros may contain viruses. It is always safe to disable macros, but if the macros are legitimate, you might lose some functionality.

The security level is set to High. Therefore, you cannot enable macros from sources that you do not trust.
[] Always trust macros from this source.

[Disable Macros] [Enable Macros] [More Info]

This warning is shown because the Microsoft signature used to sign VSTOWordAdaptor.dll and VSTOExcelAdaptor.dll is not on the list of trusted signatures in Office XP. The Microsoft signature is on the list of trusted signatures in Office 2003.

To resolve this issue

Trust macros from Microsoft Corporation. If you plan to use Visual Studio 2005 Tools for Office you must install a supported version of Office 2003. Installing Office 2003 will add this Microsoft signature to the list of trusted signatures.

6.5   Removing a table from a dataset when there are bindings to it can cause components from the component tray to be removed when you debug the application 

This issue occurs when you remove a data-bound host control, such as a list object, from the design surface and then remove the table it was bound to from the data source using either the edit feature or the Data Source Configuration Wizard. If you then add a new host control and debug the application, an exception might be generated. When you stop debugging, the design surface is unloaded and data components are removed from the component tray.

To resolve this issue

If you remove a host control from the design surface and then remove the table it was bound to from the data source, you must manually remove the table’s binding source before building the application.

6.6   Windows Forms control extender properties do not appear for English Excel if the Windows user locale is set to a language other than English 

This issue affects the English version of Excel if the Windows user locale is changed to a language other than English. Certain properties, such as height and width, are not available for Windows Forms controls hosted on the Excel design surface.

To resolve this issue

Install an Office Multilingual User Interface (MUI) pack onto the system. It is not necessary to change the Excel user interface language.

6.7   Word does not load Visual Studio Tools for Office customizations when the document is opened through HTTP and "Browse in same window" is not selected in Windows Explorer 

The "Browse in same window" property is used by Internet Explorer to determine whether the document is hosted inside the browser or in a separate window. If the document is hosted in a separate window, the customizations do not load and run.

To resolve this issue

Select "Browse in same window" in Windows Explorer.
To locate the "Browse in same window" property:
1) Open Windows Explorer.
2) Click the Tools menu.
3) Click Folder Options.
4) Click the File Types tab.
5) Select DOC in the list of registered file types.
6) Click Advanced.

When you check a Visual Studio Tools for Office document out of source code control, not all of the required files are automatically checked out. This is because generated code is stored in files that are separate from the user interface (UI) control and data component properties of the document.

Changes that were indirectly made to the dependent files will be lost when the document is checked in, because the dependent files were never checked out and so could not be updated.

If only the document is checked out and there is a newer version of the related files on the server, you will not see the latest properties. The properties in the related files on the server will be overwritten if the related files are checked in with the document.

To resolve this issue

Before modifying a checked-in document, make sure to check out all of the related files. When checking in the document, remember to check in all the related files. These files are visible in Solution Explorer, indented beneath the document, when "Show All Files" is selected.

6.9   Word templates open in Normal view, not Print Layout view, so non-inline controls are not displayed 

Objects in Word that are not inline with text are visible only in Print Layout view. By default UI controls added to a Visual Studio Tools for Office document are inline with text. The layout type can be changed by right-clicking the control, clicking "Format Control..." and then clicking "Layout".

By default, Visual Studio Tools for Office opens Word Templates in Normal view so non-inline controls do not appear.

To resolve this issue

Switch from Normal view to Print Layout view to display the controls.

6.10   Deleting a control from an inactive Excel sheet at design time might leave auto-generated code behind 

Each worksheet has its own design surface that is loaded on demand. When changes are made to the worksheet, for example, controls are added, deleted, or changed, the design surface detects those changes and updates the generated code.
If, at design time, controls are deleted from an inactive sheet, the generated code can only be partially updated because the design surface has not been instantiated. There are at least two ways this could happen. First, the "Manage Named Ranges" dialog is used to a delete a NamedRange control from an inactive sheet. Second, the Excel document is opened outside Visual Studio, controls are then removed, and then the document is re-opened inside Visual Studio.

To resolve this issue

Activate the worksheet before using the "Manage Named Ranges" dialog to delete a NamedRange control.
To repair build errors, make each affected sheet dirty by editing a property, adding a control to the surface, or deleting a control from the surface. Then rebuild the project.

6.11   Visual Studio Tools for Office does not natively support 64-bit applications 

By default Visual Studio Tools for Office and other project types generate to "Any CPU" type. However, Visual Studio Tools for Office solutions only work in a 32-bit environment.

To resolve this issue

To run Visual Studio Tools for Office solutions on a 64-bit computer you must change the platform target in the project properties from "Any CPU" to x86, even if you will deploy the application on a 64-bit Windows operating system. You must also make this change to other types of applications, for example console or Windows Forms applications, that use the ServerDocument class.

6.12   Visual Studio Team System unit testing is not supported in Visual Studio Tools for Office projects 

The unit testing feature, found in the Visual Studio Team System products, is not supported in Visual Studio Tools for Office.

To resolve this issue

There is no known resolution.

Top of Page