I am proud to announce that I have released a new version of the Assembly Version Manager for Visual Studio 2010. Version 0.9.7.4 adds a few helpful new features, has improved stability, and has UI improvements. Download it now! If you like it, be sure to give it a positive rating on the Visual Studio Gallery.
- Added global configuration options:
- Auto-refresh determines whether to automatically refresh, every 15 minutes, the list of build sets for each project-level reference
- Update "like" project-level references as a group allows you to save time by updating all of the project-level references that are part of the same build set at once - this feature saves me tons of clicks and time!
- Control the logging verbosity in the output window (in case you encounter problems and want to email me the log output)
- Refreshing the list of current build sets is now done in a background process so that it does not lockup the user interface
- General code hardening to prevent crashing Visual Studio if something unexpected happens
- Fixed a bug that caused Visual Studio to crash on startup when using a source control provider that does not support the concept of checking out files (e.g. one that only supports merge/commit)
- Fixed problems with the animation control logic
- Fixed a bug that caused Visual Studio to crash on project load when a project contains references that cannot be located on disk (these are displayed in the Solution Explorer with a warning icon)
- Replace textual buttons on the main UI with icons
- Improved the usability of the build set configuration editor:
- Added buttons to view/edit a configuration
- Double clicking now opens the selected configuration
- Added tool tips to explain why certain items are displayed in italics
I am proud to announce that I have released a new version of the Assembly Version Manager for Visual Studio 2010. Version 0.9.5.0 adds some new features, fixes some bugs, and has some slick UI gloss. Download it now! If you like it, be sure to give it a positive rating on the Visual Studio Gallery.
- Robust management of extension version and build set provider versions
- The tool window automatically opens the first time a new version of the extension is installed.
- Automatically checks to see if a new version is available and notifies you in the UI.
- Tracks which version of the extension was used to generate the solution configuration data.
- Notifies you when the solution configuration data cannot be read because it was generated by a newer version of the extension than you have installed. This could definitely happen in team scenarios.
- Tracks which version of each build set provider was used to generation each build set configuration.
- Notifies you when you cannot view/edit/use a particular build set provider configuration because your version of assembly version manager is out of date. This could definitely happen in team scenarios.
- Improved detection of build set versions
- The new default matching expressions can handle any number of ordinal numbers. This was important because it is common to have four ordinal numbers in a product version.
- If you created custom matching expressions, they will be automatically upgraded to the new format.
- Fixed bug that caused release build sets not to show up in the menu in certain cases.
- Fixed bug that caused the newer old builds/releases not to show up in the menu when there were more than 20 older build sets.
- Fixed bug in the default folder naming conventions that allowed partial matches to succeed.
- Improved the layout of the build set provider configuration editor
- Added an animated dialog that displays while a reference is being switched to a new build set
- Added a status bar to the bottom of the tool window
- Made the status bar expand when you mouse over to reveal helpful links
- Converted the tool window to use an M-V-VM pattern and rewrote most of the animations to use the new Visual State Manager
Okay, so I used the wonderful new Web Deploy tool in Visual Studio 2010 to deploy a package to my production web server, and after it finished the Team Foundation Server's (TFS) web services were generating 500 errors.
Here is the rather unhelpful error message that showed up in the event log:
The description for Event ID 3000 from source TFS Services cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.
If the event originated on another computer, the display information had to be saved with the event.
The following information was included with the event:
TF53010: The following error has occurred in a Team Foundation component or extension:
Date (UTC): 5/4/2010 11:05:33 AM
Application Domain: /LM/W3SVC/8080/ROOT/tfs-1-129174445038093876
Assembly: Microsoft.TeamFoundation.Framework.Server, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; v2.0.50727
Service Host: 0187db53-987c-4bdc-8b4e-e918fa002794 (DefaultCollection)
Process Name: w3wp
Process Id: 7696
Thread Id: 5500
Account name: **********\********
Detailed Message: TF30059: Fatal error while initializing web service
Web Request Details
Url: http://*******:8080/tfs/_tfs_resources/Build/v3.0/BuildQueueService.asmx [method: POST]
User Agent: Team Foundation (BuildNotification.exe, 10.0.30319.1)
Local Request: False
Host Address: **************
User: **********\********** [authentication type: NTLM]
Exception Message: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B) (type BadImageFormatException)
Exception Stack Trace: at Microsoft.TeamFoundation.Framework.Server.ServerNativeMethods.GetEdition(PIDFamily iProductFamily, Int32& piFeatureLevel)
at Microsoft.TeamFoundation.Framework.Server.ApplicationServiceHost.HaveValidUserLicense(WindowsIdentity callingUser, String& licenseErrorCode, String& licenseErrorMessage)
at Microsoft.TeamFoundation.Framework.Server.TeamFoundationApplication.Application_PostAuthenticateRequest(Object sender, EventArgs e)
the message resource is present but the message is not found in the string/message table
Confused? I was... so rather than trying to figure it out, I restored the machine to its last backup and tried again. Same result. This time I decided to try and figure out what the problem was. After several hours of searching and debugging, I figured out that there was a simple (though weird) explanation:
The TFS application pools in IIS were configured to use an odd version of the .NET 4 framework. By default the TFS application pools should have the "Enable 32-Bit Applications" option set to "False". However, the web deploy tool had the odd effect of causing these application pools, with the bogus version of .NET 4, to turn this option to "True".
The fix is easy:
- Set the TFS application pools to use the RTM version of .NET 4
- Manually change the "Enable 32-Bit Applications" setting to "False" for the TFS application pools
Once that is done I was able to use the Web Deploy tool without any ill side effects.
In my configuration, I was using the Team Foundation Server 2010 RC bits on that server before I upgraded the server to the RTM bits. I followed Microsoft's upgrade guide to the letter, but I don't remember anything about verifying the application pools' framework version. This problem may not affect users who have only had the RTM version installed.
As you may have noticed, the Living Agile web site does not yet provide any mechanism to download any of the open source projects. The short answer is that none of the projects have been officially released to the public yet.
The long answer is that several of the projects are “ready” to be released, but I want to do several administrative tasks first:
- Need to pick a host for the projects’ files (maybe github)
- I want my build server to automatically upload the new binary files and updated sources each time a build successfully executes all of the unit/integration tests
- I might want to write up some basic documentation
The second step is the part that will take a bit of effort (unless I can find an MSBuild task that already does this!). I expect that some of the projects will be available for download by the end of the month. The following projects are considered to be ready for release in their current state:
The Distributed Shared Cache is still a work in progress, and this project is evolving in scope as it is being planned/developed. It probably will not be released until very late this year or even sometime next year.
I have posted the latest beta of the Assembly Version Manager to the Visual Studio Gallery. The Living Agile website still needs some work, and the documentation for the extension is not fully complete yet, but releasing the product should provide ample motivation to finish!
If you are not familiar with the Assembly Version Manager (as surely most of you are not), here is the short description:
This extension for Visual Studio 2010 enables the developer to easily manage the version of the assemblies that are referenced by the projects in a solution.
You can find more details on the product's home page or in the getting started guide.
Although the extension is still in beta, I am currently using it in conjunction with solutions that are used in production and I consider the latest beta to be very stable. The big reason why it is still labeled as a beta is that I want to leave room to add some beefy features for the 1.0 RTM release. On that note, feel free to post suggestions on the forum!