使用命令行发布WCF服务(或ASP.NET Web应用程序)

时间:2009-05-22 15:13:17

标签: .net msbuild

我想在Visual Studio 2008中模拟WCF服务项目(或ASP.NET Web应用程序或...)上下文菜单中的“发布...”菜单项。我不需要将其发布到运行IIS实例,只是为了将web内容与bin文件夹放在一些本地目录上。有没有办法在后期构建事件中添加它,或者作为MSBuild任务?

3 个答案:

答案 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