【问题标题】:msbuild deployonbuild trying to publish different projectmsbuild deployonbuild 试图发布不同的项目
【发布时间】:2015-11-14 03:59:48
【问题描述】:

我有一个使用参数通过命令行发布的 MVC 站点

msbuild.exe /p:DeployOnBuild=true /p:PublishProfile=Test MyProject.csproj

MyProjectproject 引用了另一个 Web 应用程序项目 MyReferencedProject。这用于存储与另一个网站共享的 Razor 视图和其他共享代码。 (RazorGenerator 建议将项目类型设置为 Web 应用程序,以便在使用 Razor 视图时获得智能感知)该项目的功能类似于类库,永远不应发布。

问题是,当我运行上面的命令时,我得到了它找不到Test.pubxml for MyReferencedProject 的错误:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4352,5):错误:PublishProfile 的值设置为“测试”,预计会在“C:\Projects\MyReferencedProject\Properties\PublishProfiles\Test.pubxml”找到该文件,但找不到。

如何运行 msbuild 来发布 MyProject 而不尝试发布 MyReferencedProject

我发现我可以通过为此项目添加 Test 发布配置文件来解决此问题,但这意味着我必须设置一些地方来放置发布时的代码,而这根本不应该生成.

【问题讨论】:

    标签: asp.net-mvc msbuild publish


    【解决方案1】:

    尝试将命令行更改为:

    msbuild.exe /p:DeployMyProject=true /p:PublishProfile=Test MyProject.csproj

    然后在任何Import 语句之前将以下属性组添加到MyProject.csproj

    <PropertyGroup>
      <DeployOnBuild Condition="'$(DeployMyProject)'!=''">$(DeployMyProject)</DeployOnBuild>
    </PropertyGroup>
    

    此解决方案基于:How to publish one web project from a solution

    【讨论】:

      猜你喜欢
      • 2011-06-25
      • 2014-10-16
      • 1970-01-01
      • 1970-01-01
      • 2014-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多