Visual Studio 2010 Web Deployment Projects RTW – Available Now

Visual Studio 2010 Web Deployment Projects RTW – Available Now

Rate This
  • Comments 8

We are pleased to announce that the RTW version of Web Deployment Projects for Visual Studio 2010 is now available for download. If you’ve been using Web Deployment Projects in Visual Studio 2008 or 2005, you can upgrade to VS 2010 without hesitation with the availability of Visual Studio 2010 Web Deployment Projects RTW (for Visual Studio Professional and higher skus).

Installation

You can download Visual Studio 2010 Web Deployment Projects RTW from the download page (or simply click here to directly download the installer).

Features in WDP 2010 RTW

The RTW version of Visual Studio 2010 Web Deployment Projects preserves all the core functionalities of Visual Studio 2005 Web Deployment Projects and Visual Studio 2008 Web Deployment Projects.

You can read more about these core features in the blog post we made for the Beta version. This blog post also describes enhancements such as Multi-targeting support for WDP in VS 2010 and Packaging using the new WDP ‘Build Deployment Package’ command. The ‘Build Deployment Package’ command in WDP also applies any web.config transformations when building the package if you have specified transformation files such as Web.Debug.config and Web.Release.config in your project.

What has changed since WDP 2010 Beta?

  • Performance improvements

    • With WDP 2010 Beta, when we built the Web Deployment Project linked to a WAP, we always did a CopyBeforeBuild in order to exclude the “obj” folder.  This was necessary because the obj folder could cause the aspnet_compiler to fail if it contained additional web.config files in its temporary directories. Unfortunately, this slowed down the performance of WDP 2010 Beta compared to WDP for VS 2008.

      This issue is now fixed with VS 2010 WDP RTW. Now, we do the CopyBeforeBuild only when necessary, hence performance should be at-par with VS 2008.
      .
    • We also improved the copying techniques used in the background to gain some additional benefits in performance.
  • Multi-targeting support

    • WDP for VS 2010 invokes the correct version of aspnet_compiler for compilation by looking at the TargetFrameworkVersion property in the .wdproj file (for details, see the “Multi-targeting support in WDP 2010” section in the blog post we made for the Beta version). This property must match the target framework of your website in order for the correct version of the compilation and merge tools to be invoked.

      With VS 2010 WDP RTW, the correct version should be automatically set for you in the .wdproj file when you add a new WDP or convert a solution with WDP from VS 2008. In the event they do become out-of-sync for some reason, VS will auto-sync when you close and re-open the solution.
  • Automatically exclude .out, .vspscc, .user, .csproj files by default

    • With VS 2010 WDP RTW, when you build the WDP, we now automatically exclude files with certain extensions that you don’t typically need when you deploy your web project. We automatically exclude:
      • *.out files under root folder.
      • *.scc *.vspscc files
      • *.csproj, *.vbproj files
      • *.user files
  • Team build scenarios – We fixed some bugs so that you can now use WDP when doing team build scenarios with VS 2010 Ultimate and TFS.

 

Thanks,

- Visual Web Developer Team

Leave a Comment
  • Please add 3 and 2 and type the answer here:
  • Post
  • Do all users using your site first have to log off before you can deploy your new programs to your server?

    Regards

    Gerhard

  • Have you tested this without Visual Studio 2010 installed? Web deployment projects doesn't work at all on a build server with only .NET 4.0 SDK installed. These are the problems I've encountered:

    C:\Program Files (x86)\MSBuild\Microsoft\WebDeployment\v10.0\Microsoft.WebDeployment.targets(1596, 9): error MSB6004: The specified task executable location "C:\Program Files (x86)\MSBuild\Microsoft\WebDeployment\v10.0\aspnet_merge.exe" is invalid.

    This was fixed by replacing 'ExePath="$(AspnetMergePath)"' with 'ExePath="C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\NETFX 4.0 Tools"'. Then the following problem occurred:

    C:\Program Files (x86)\MSBuild\Microsoft\WebDeployment\v10.0\Microsoft.WebDeployment.targets(1682, 5): error MSB4036: The "CollectFilesinFolder" task was not found. Check the following: 1.) The name of the task in the project file is the same as the name of the task class. 2.) The task class is "public" and implements the Microsoft.Build.Framework.ITask interface. 3.) The task is correctly declared with <UsingTask> in the project file, or in the *.tasks files located in the "C:\Windows\Microsoft.NET\Framework\v4.0.30319" directory.

    By commenting out the "CollectFilesinFolder" task, I was able to move on and got the following error:

    C:\Program Files (x86)\MSBuild\Microsoft\WebDeployment\v10.0\Microsoft.WebDeployment.targets(1701, 23): error MSB4113: Specified condition "$(EnablePackageProcessLoggingAndAssert)" evaluates to "" instead of a boolean.

    This was solved by changing the condition from:

       <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert)"

    To:

       <WriteLinesToFile Condition="'$(EnablePackageProcessLoggingAndAssert)'==''"

    Then, the next problem was:

    C:\Program Files (x86)\MSBuild\Microsoft\WebDeployment\v10.0\Microsoft.WebDeployment.targets(1743, 5): error MSB4036: The "CopyPipelineFiles" task was not found. Check the following: 1.) The name of the task in the project file is the same as the name of the task class. 2.) The task class is "public" and implements the Microsoft.Build.Framework.ITask interface. 3.) The task is correctly declared with <UsingTask> in the project file, or in the *.tasks files located in the "C:\Windows\Microsoft.NET\Framework\v4.0.30319" directory.

    Commenting out this made the web deployment project execute with MSBuild, but it now has no output, so the out-commenting I've done is obviously not the way to go about it.

    Why are the "CollectFilesinFolder" and "CopyPipelineFiles" tasks missing? Where can I obtain them? Why isn't whatever library they're included in referenced as a requirement on the WDP 2010 download page? Why is Microsoft.WebDeployment.targets referencing the wrong path to "aspnet_merge.exe"? Why are there so many errors here that you haven't discovered?

    The web deployment projects in question have been created with VS2010  WDP RTW and are being executed successfully on a local machine with Visual Studio 2010 installed. On the build server (that obviously haven't and shouldn't have Visual Studio 2010 installed) all of these problems are occurring. It looks like you haven't tested VS2010 WDP on a machine without Visual Studio 2010 installed at all.

  • First I need to clarify --  This is not supported secnario.  

    WDP won't install without VS (setup specifically check VS installation.)

    Which basically means that you install on one machine and grab the task and dll to the build machine and expected it magically to work.  

    While we understand the desire of  barebone on the build machine.  

    However, I want to set the expection right,  what you did might work for WDP2008.  But with the complexity the new 2010 introduce.  You need other target file/task to make it work (which ship with VS.)

    That's said, Now go back to what you need. to get you unblock.  

    (again, subject to change on later release...)

    For the barebone build machine to work.

    Beside WDP's target file/task.

    You will also need the following target  (Note that you need to put in the relative path. to the WDP targets)

    C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0\Web\*

    C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\*

    All the thing that you point out, means that you missing these targets and tasks.

    After copied into the build machine, see how it works.

    Aspnet_merge.exe is differnt issue, we are rely on core MSBuild task/properties to find out the SDK path.

    which tie into the MSBuild4.  Please make sure you must have msbuild 4.0 installed on the machine.  

    However, since you have the workaround. we might deal with this later.

    Let's know how it work for you with the above target/tasks copied to the build machine.

    HTH.

    -Ming

  • Hi.

    What you are saying is wrong. Both WDP 2008 and WDP 2010 installs fine without Visual Studio on the machine. Perhaps the Windows SDK is required, but Visual Studio itself isn't. I can also say that MSBuild 4 is installed (with the .NET 4.0 SDK) and is placed in the "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\NETFX 4.0 Tools" folder.

    I'll have a try at copying the .target files to the build server and will report back how it works. Is there a reason why these .target files can't be bundled with the WDP 2010 installer?

  • After copying the .target files you suggested and making the following alteration to Microsoft.WebDeployment.targets, it now works!

       <Import Project="..\..\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets" />

       <Import Project="..\..\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />

  • Did you ever get this error:

    (AspNetCompiler target) ->

     aspnet_merge : error 1008: The PrecompiledApp.config file is missing. Make sure the application has been precompiled with the Aspnet_compiler tool.

    I have VS 2010, Web Deployment v10 and MSBuild 4.0 installed

    Replaced the paths in AspNetMerge (because I also got the same error)

    Also had to replace

    AspNetMerge ApplicationPath="C:\windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files"

    because I also got error:

    (AspNetMerge target) -> aspnet_merge : error 1020: Cannot find the following assemblies to be merged in the application bin folder: App_Web_k

    x0mjufu.dll, App_Web_1f315t0z.dll, App_Web_aiuml3d0.dll, App_Web_fjgmbexq.dll

    Imported those 2 targets Microsoft.Web.Publishing.targets and Microsoft.WebApplication.targets

    But in the end, I am stuck on "The PrecompiledApp.config file is missing" no matter what I tried. So where is aspnet_merge looking for PrecompiledApp.config?

  • Hi, klbytec. I am trying to reproduce this error but am unable to. Can you provide me with more details (and possibily an attached example)? My email is: its sayedha [AT] microsoft [DOT] com.

  • Hi Sayed.  I regret not seeing your comment earlier!  I just emailed you.  Hope it's not too late. Thanks for taking an interest on this matter.

Page 1 of 1 (8 items)