在Visual Studio 2012 Build菜单中,有一个Publish命令。在此,您可以在项目的Properties文件夹中创建保存为.pubxml文件的配置文件。我有一个这样的配置文件,这是一个简单的文件复制操作 - 它只是编译网站并将其转储到一个文件夹。
如何在命令行中使用msbuild将已编译的Web应用程序发布到文件夹?
我试过这个问题的例子:
After Publish event in Visual Studio
这里给出的变化和例子:
后者似乎最接近,但它导致每个库项目.csproj我试图发布以抛出错误:
项目“MainProj.csproj”(1)正在节点1上构建“ReferencedProj.csproj”(2)(默认目标)。
C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets(609,5):错误:未为项目“ReferencedProj.csproj”设置OutputPath属性。请检查以确保您为此项目指定了Configuration和Platform的有效组合。 Configuration ='Staging'Platform ='AnyCPU'。您可能会看到此消息,因为您正在尝试构建没有解决方案文件的项目,并且已指定了此项目不存在的非默认配置或平台。 [ReferencedProj.csproj]
完成建筑项目“ReferencedProj.csproj”(默认目标) - 失败。
这种方法与本答案中的建议非常相似:
https://stackoverflow.com/a/7077178/176877
关键的区别可能是我在Visual Studio 2012中,而不是VS2008或2010。
答案 0 :(得分: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" />