我想在Visual Studio 2008中模拟WCF服务项目(或ASP.NET Web应用程序或...)上下文菜单中的“发布...”菜单项。我不需要将其发布到运行IIS实例,只是为了将web内容与bin文件夹放在一些本地目录上。有没有办法在后期构建事件中添加它,或者作为MSBuild任务?
答案 0 :(得分:9)
这是答案,感谢此链接:http://codingcockerel.co.uk/2008/05/18/how-to-publish-a-web-site-with-msbuild/ 所以,我刚刚修改了web应用程序的.csproj文件,并将其写入AfterBuild目标(已经存在):
<Target Name="BeforeBuild">
<Message Text="##############Before build##################" Importance="high"/>
<RemoveDir Directories="publish"
ContinueOnError="true"/>
</Target>
<Target Name="AfterBuild">
<Message Text="##############After build##################$(OutputFolder)" Importance="high"/>
<MSBuild Projects="$(ProjectName).csproj"
Targets="ResolveReferences;_CopyWebApplication"
Properties="WebProjectOutputDir=publish\;OutDir=publish\bin\" />
</Target>
答案 1 :(得分:0)
您应该能够编写xcopy命令将所需文件复制到正确的位置。 Microsoft有一篇关于xcopy deployment for asp.net的文章。
一旦你拥有了正确的命令,你就可以将它放入Post Build动作中,以便在构建之后自动触发。
另请参阅VS Post Build Event有关复制dll输出的示例(请注意使用$(TargetPath)&amp; $(TargetDir))。
答案 2 :(得分:0)
HI, 你应该看一下Web Deployment Projects。这些实际上是具有Visual Studio GUI支持的MSBuild文件。他们将预编译您的网站。您可以扩展这些行为以将生成的文件复制到Web服务器。
Sayed Ibrahim Hashimi
我的书:Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build