1

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

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


我试过的

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

在 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'。您可能会看到此消息,因为您正在尝试构建没有解决方案文件的项目,并且指定了该项目不存在的非默认配置或平台。[参考项目.csproj]

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

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

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

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

4

1 回答 1

0

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

<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" />
于 2014-03-07T10:26:47.023 回答