【问题标题】:Publish WCF Service (or ASP.NET Web Application) using command line使用命令行发布 WCF 服务(或 ASP.NET Web 应用程序)
【发布时间】:2009-05-22 15:13:16
【问题描述】:

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

【问题讨论】:

    标签: .net msbuild


    【解决方案1】:

    这是答案,感谢这个链接: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>
    

    【讨论】:

      【解决方案2】:

      您应该能够编写一个 xcopy 命令来将您需要的文件复制到正确的位置。 微软有一篇关于xcopy deployment for asp.net的文章。

      一旦您拥有正确的命令,您就可以将其放入构建后操作中,以便在构建后自动触发。

      另请参阅VS Post Build Event,了解有关仅复制 dll 输出的示例(注意使用 $(TargetPath) 和 $(TargetDir))。

      【讨论】:

        【解决方案3】:

        嗨, 你应该看看Web Deployment Projects。这些实际上是具有 Visual Studio GUI 支持的 MSBuild 文件。他们将预编译您的网站。您可以扩展这些行为以将生成的文件复制到您的 Web 服务器。

        赛义德·易卜拉欣·哈希米

        我的书:Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build

        【讨论】:

        • 我在使用 Web 部署项目时遇到问题,因为它们部署了 .csproj 文件、obj 文件夹和所有其他不必要的东西。我只想从 Web 应用程序(不是网站)项目的上下文菜单中重现“发布...”命令的行为。有没有更简单的方法,或者我必须手动排除它们,就像使用 xcopy 一样?
        猜你喜欢
        • 2011-03-02
        • 1970-01-01
        • 1970-01-01
        • 2018-01-19
        • 1970-01-01
        • 2013-08-28
        • 1970-01-01
        • 2012-12-26
        • 1970-01-01
        相关资源
        最近更新 更多