【问题标题】:VS2012 MSBuild: Publish a Web Application Project with Existing Publish ProfileVS2012 MSBuild:使用现有发布配置文件发布 Web 应用程序项目
【发布时间】:2013-08-17 20:14:13
【问题描述】:

在 Visual Studio 2012 构建菜单中,有一个发布命令。在此您可以建立在项目的 Properties 文件夹中保存为 .pubxml 文件的配置文件。我有一个这样的配置文件,它是一个简单的文件复制操作——它只是编译站点并将其转储到一个文件夹中。

如何在命令行中使用 msbuild 将已编译的 Web 应用程序发布到文件夹?


我尝试过的

我已经尝试过这个问题的例子:

After Publish event in Visual Studio

以及这里给出的变化和例子:

http://www.digitallycreated.net/Blog/59/locally-publishing-a-vs2010-asp.net-web-application-using-msbuild

后者似乎最接近,但它会导致每个库项目我尝试发布的 .csproj 引发错误:

项目“MainProj.csproj”(1) 正在节点 1(默认目标)上构建“ReferencedProj.csproj”(2)。

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(609,5):错误:未为项目“ReferencedProj.csproj”设置 OutputPath 属性。请检查以确保您为此项目指定了有效的配置和平台组合。配置='暂存'平台='AnyCPU'。您可能会看到此消息,因为您正在尝试构建没有解决方案文件的项目,并且指定了该项目不存在的非默认配置或平台。 [ReferencedProj.csproj]

完成构建项目“ReferencedProj.csproj”(默认目标)--失败。

此方法与此答案中建议的方法非常相似:

https://stackoverflow.com/a/7077178/176877

关键的区别可能是我使用的是 Visual Studio 2012,而不是 VS2008 或 2010。

【问题讨论】:

  • 您是否指定了正确的平台?您是否尝试过不指定平台。 IE:只是“Configuration='Staging'”

标签: visual-studio-2012 msbuild web-application-project


【解决方案1】:

老问题,但如果这对任何人都有帮助,这种简单、精简的方法对我来说效果很好:

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
    ...
    <BuildDependsOn>
        $(BuildDependsOn);
        PublishOtherProject;
    </BuildDependsOn>
</PropertyGroup>
<Target Name="PublishOtherProject"> 
    <MSBuild Projects="pathtomyproject.csproj" Properties="DeployOnBuild=true;PublishProfile=nameOfPublishProfile" />
</Target>

关键是:

<MSBuild Projects="pathtomyproject.csproj" Properties="DeployOnBuild=true;PublishProfile=nameOfPublishProfile" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-06
    • 1970-01-01
    • 2010-09-08
    • 1970-01-01
    • 1970-01-01
    • 2014-01-24
    • 1970-01-01
    相关资源
    最近更新 更多