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 -
- 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.
- 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:
- Double-click the "My Project" item in the Solution Explorer. Select the "References" tab, and uncheck any 2.0-specific imported namespaces.
- Surround any non-.NET 2.0 code in conditional compilation constants. For example: "#IF NOT NET11 OR NET10"
- 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.