I was working on a project at this week which was initially coded in Visual Studio 2005 and it was implementing Web Services Enhancements 3.0 to transfer data between a client application to a server web service. When I converted it to 2008, it no longer worked when I updated the web references due to Web Services Enhancements not being enabled for it.

I went searching on the internet on how to implement this, and came across solutions by Jinal Patel and Jason Young, but I found I had to do a combination of the two to get it to work.

First, I went and found the “denenv.exe.config” configuration file within the folder where you installed Visual Studio 2008. Add the following near the bottom:

[code lang="xml"]<system.web>
<webServices>
<soapExtensionImporterTypes>
<add type="Microsoft.Web.Services3.Description.WseExtensionImporter,
Microsoft.Web.Services3, Version=3.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</soapExtensionImporterTypes>
</webServices>
</system.web>[/code]

Next and final step, is to reconfigure the plugin to run in Visual Studio 2008 not 2005. Open up the “%ALLUSERSPROFILE%\Application Data\Microsoft\MSEnvShared\Addins” folder and you should find there is a file called “WSESettingsVS3.Addin“. This is the configuration file for the plugin. Open it up in Notepad (or any text editor) and update the version number from 8.0 (which is VS2005) to 9.0 (which is VS2008) and it should look like this:

[code lang="xml"]<HostApplication>
<Name>Microsoft Visual Studio Macros</Name>
<Version>9.0</Version>
</HostApplication>
<HostApplication>
<Name>Microsoft Visual Studio</Name>
<Version>9.0</Version>
</HostApplication>[/code]