Using Visual Studio 2005 to build Web applications felt a bit uncomfortable until now. My biggest issue with VS2005 is the new project structure. I really liked the single DLL deployment way of VS 2003 but by default VS2005 creates a DLL for each page. The new publish and copy web project options have their drawbacks: publish deletes all files in the target folder and copy web project is getting confused by the file dates because it looks at the Visual SourceSafe get date instead of the last modified date. Also the publish option copies the .scc (SourceSafe) files to the target folder.
After trying several options this is what I do to deploy a web project:
1. I use an add-in for VS2005[1] that allows me to set more options than a standard VS2005 project allows me to do. One of the very nice things it can do is change the web.config for different build versions. Using the tool I can also get a single DLL for a precompiled web app.
2. I added an extra task to the build file:
<ItemGroup>
<VSSFile Include=”**/*.scc”/>
<VSSFile Include=”**/*.vsscc”/>
<VSSFile Include=”**/*.vssscc”/>
</ItemGroup>
<Target Name=”AfterBuild”>
<Delete Files=”@(VSSFile)” ContinueOnError=”true” />
</Target>
This task deletes VSS files from the target folder.
3. I use an exellent program called SmartFTP[2] to upload to the FTP server; I wish I could point the the copy web project tool to the target folder…
[1] http://msdn.microsoft.com/asp.net/reference/infrastructure/wdp/
[2] http://www.smartftp.com