Known Issues with the MSBuild Toolkit for VS2005 RC

I've had a number of people give me great feedback on the MSBuild Toolkit I put out last week, and I wanted to note all the issues that I'm currently investigating.


VS.NET hangs when accessing the "Build | MSBuild Configuration " option from the MenuBar.

Description:
When attempting to access the add-in dialog for the first time, if you use the option from the "Build" menu instead of the project's right-click menu, Visual Studio 2005 will hang as if a modal dialog is open but not visible.

Symptoms:
- You cannot bring Visual Studio 2005 into focus.
- You can only close Visual Studio 2005 from the Task Manager.
- The VS2005 icon disappears from the "Alt-Tab" menu in Windows.

Cause:
Unknown at this time.

Workaround:
Always access the "MSBuild Configuration" menu option from the project's right-click menu the first time you use it in an open application. You can access it from the "Build" menu after you've opened it from the project's menu.

Status:
Under investigation, fix scheduled for RC2


The Add-in "MSBuild Commander" fails to load with error number 80070002

Description:
The add-in fails to load when VS2005 starts up.

Symptoms:
After installing the MSBuild Toolkit, you encounter the following message when starting VS2005:
"The add-in 'MSBuild Commander' failed to load or caused an exception. Would you like to remove this Add-in? If you choose yes, the file it was loaded from, '*path*\MSBuildCommander.AddIn', will be renamed.
Error message: The system cannot find the file specified.
Error number: 80070002"

Cause:
VS2005's new add-in model makes you use an XML file for your add-in registration. In order to specify the add-in assembly location, you must either specify a full path, or install the assembly into the GAC. To fix this, I either have to create a post-install action that modifies the XML file with the full path, or install the assemblies to the GAC. Using the GAC is pre-release software is generally not advisable, because it can introduce un-installation hassles.

Workaround:
You MUST install the Toolkit in the default installation folder.

Status:
Resolved for RTM


The WinForms Designer Fails When Designing a Form Targeted to an Older Version of .NET

Description:
When creating a new WinForms project in Visual Studio 2005 (NOT upgrading from VS.NET 2003), if you select an older version of .NET to compile to, the WinForms designer will fail to load the form for design-time interaction.

Symptoms:
The WinForms Designer shows an error message when opening a form in Design View.

Cause:
.NET 2.0 has a new feature called Partial Types that allow you to break out a class into multiple files. VS2005 uses this feature to separate the designer-generated code from the form's procedural code. Apparently, Visual Studio 2005 uses the version specified in the MSBuild target to load up the form in the designer. Since older versions of .NET do not support partial types, the design-time experience will be broken.

Workarounds:
There are two options -

  1. Upgrade your existing VS.NET 2003 WinForms application to VS2005. During the upgrade process, the designer will not separate out existing forms into partial classes.
  2. If you create a new WinForms project with VS2005, and you must compile a native 1.1 assembly, you need to combine all the partial class files into a single class before attempting to design any forms of compile the application.

I am currently investigating the possibility of an addition to the add-in that will perform a one-time conversion of partial types into single class files.

Status:
By Design. Documentation fixed for RC2.


New Projects Created in VS2005 Fail to Compile to Older Versions of .NET

Description:
Projects that are created from scratch and not upgraded from VS.NET 2003 will not compile to .NET 1.1 or 1.0 after the configuration is changed.

Symptoms:
No assemblies are emitted by the compiler.

Cause:
There are a bunch of new namespaces and types that are not supported by older versions of .NET. There are several default options in VS2005 (for example, globally importing the "System.Collections.Generic") that are not backwards compatible.

Workaround:

  1. Double-click the "My Project" item in the Solution Explorer. Select the "References" tab, and uncheck any 2.0-specific imported namespaces.
  2. Surround any non-.NET 2.0 code in conditional compilation constants. For example: "#IF NOT NET11 OR NET10"
  3. Recompile. It may take several attempts at compiling to clear up all the compilation issues.

Status:
By Design. Documentation fixed for RC2.


VS2005 Projects Containing COM References Fail to Compile to Older Versions of .NET

Description:
Projects created in or upgraded to VS2005 that utilize COM Interop will not compile to .NET 1.1 or 1.0

Symptoms:
No assemblies are emitted by the compiler.

Cause:
The Runtime-Callable Wrapper generated by Visual Studio 2005 references MSCoreLib.dll Version 2.0.50515. The backwards-compatibility targets do not change the references for the RCW.

Workaround:
None at this time.

Status:
Under Investigation.


That's about it for now. I'll post more as the feedback comes in. I'm headed to Colorado this weekend to attend the wedding of a stepsister I've never met, so I probably won't be able to post any updates until next week at the earliest.

4 Comments

  • Ok, you're right MSBuild from the Build menu will hang on the first attempt to use MSBuild in a project. I understand that I need to do the right-click thing, but I don't have an MSBuild menu option for a Web Project. Thoughts?

  • I want to use the Toolkit with C# Express Edition Beta 2.050215-4400 (you mentioned "It should work with ALL versions of VS2005, including the Express SKUs." last year). Unfortunately, I'm not getting the menu item in Build or application context. Maybe due to German OS (%PROGRAMFILES% is "C:\Programme", not "C:\Program Files")?



    Any idea? Other way to access?



    Thanks

  • Thomas,

    I have a Spanish version of Windows. I had to force the installation of the Toolkit in "C:\Program Files" and not the default "C:\Archivos de programas". That worked for me.

  • I'm getting this build error:



    D:\VSProjects\MyApp\Class1.vb(9) : error BC30968: Reference required to assembly 'System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' containing type 'System.ComponentModel.Component', but a suitable reference could not be found due to ambiguity between 'C:\WINDOWS\assembly\GAC\System\1.0.5000.0__b77a5c561934e089\System.dll', which is referenced by project 'MyApp', and 'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50215\System.dll', which is referenced by project 'MyApp'. If both assemblies are identical, try replacing these references so both references are from the same location.





    The strange thing is the reference to System in MyApp.vbproj is just <Reference Include="System" />



    What can be wrong?

Comments have been disabled for this content.