【问题标题】:How do I publish a Asp.NET web application using MSBuild?如何使用 MSBuild 发布 Asp.NET Web 应用程序?
【发布时间】:2010-09-08 02:13:33
【问题描述】:

我正在尝试使用 NAnt 和 MSBuild 在本地发布 Asp.net MVC Web 应用程序。这就是我用于 NAnt 目标的内容;

<target name="publish-artifacts-to-build">
    <msbuild project="my-solution.sln" target="Publish">
      <property name="Configuration" value="debug" />
      <property name="OutDir" value="builds\" />
      <arg line="/m:2 /tv:3.5" />
    </msbuild>
</target>

我得到的只是作为回应;

[msbuild]          Skipping unpublishable project.

这种方式可以通过命令行发布web应用吗?

【问题讨论】:

    标签: asp.net .net deployment msbuild


    【解决方案1】:

    我想出了这样的解决方案,非常适合我:

    msbuild /t:ResolveReferences;_WPPCopyWebApplication /p:BuildingProject=true;OutDir=C:\Temp\buidl\ Test.csproj
    

    秘诀是 _WPPCopyWebApplication 目标。

    【讨论】:

    • _WPPCopyWebApplication 在哪里?我有 VS 2008 和 vbproj。
    • 我认为它不适用于 2008 年 :( .. 这个目标在这里定义:“C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.目标”
    • 这个答案在 VS 2010 中对我有用。我正在使用一个调用 MSBuild 的批处理文件。发布任务正在部署代码,但它没有解释我的配置设置(所以我在部署位置获得了 web.config、web.configuration.config,并且它没有执行 xdt 转换)。当我使用 ResolveReferences;_WPPCopyWebApplication 时,我发布的文件会按预期解析配置,从而生成一个执行所有转换的 web.config。
    • 为了记录,我实际上不得不切换目标的顺序。来自 ResolveReferences;_WPPCopyWebApplication 的部署文件在 bin 中缺少一些 DLL,从而导致错误。当我将顺序切换到 _WPPCopyWebApplication;ResolveReferences 时,所有 DLL 都按预期维护。
    【解决方案2】:

    您尝试调用的“发布”目标是用于“OneClick”部署,而不是用于发布网站...这就是您收到看似奇怪的消息的原因。 您可能希望使用 AspNetCompiler 任务,而不是 MSBuild 任务。有关此任务的更多信息,请参阅 http://msdn2.microsoft.com/en-us/library/ms164291.aspx。您的“PublishDir”将对应于任务的 TargetPath 属性。

    Source

    【讨论】:

      猜你喜欢
      • 2011-03-02
      • 1970-01-01
      • 2011-12-13
      • 1970-01-01
      • 1970-01-01
      • 2014-01-24
      • 1970-01-01
      • 2018-10-30
      • 1970-01-01
      相关资源
      最近更新 更多