使用从命令行调用的以下MSBuild脚本,我尝试运行在Visual Studio 2012中运行良好的发布选项。
<Target Name="BuildRelease">
<MSBuild
Properties="Configuration=Release;DeployOnBuild=True;
DeployTarget=Publish;CreatePackageOnPublish=True"
StopOnFirstFailure="true"
Projects="$(BuildDirectory)\BigWave.ALL.sln"></MSBuild>
</Target>
我的Project.pubxml是......
<Project ToolsVersion="4.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>FileSystem</WebPublishMethod>
<SiteUrlToLaunchAfterPublish />
<publishUrl>c:\temp\Deploy</publishUrl>
<DeleteExistingFiles>False</DeleteExistingFiles>
</PropertyGroup>
</Project>
Project.pubxml.user是......
<Project ToolsVersion="4.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<TimeStampOfAssociatedLegacyPublishXmlFile />
</PropertyGroup>
...snipped ItemGroup which has all my files and last timestamp of publish
</Project>
这些文件是否有问题会导致“发布”选项无效?该脚本运行时没有错误,但当我查看C:\temp\Deploy directory
时,没有文件。
答案 0 :(得分:2)
根据此http://sedodream.com/2012/08/19/VisualStudioProjectCompatabilityAndVisualStudioVersion.aspx,当您将VS2010和VS2012用于相同的解决方案时,您必须指定正在使用的VS的版本。我只是添加了版本,现在它可以工作。
我希望这可以帮到你!
祝你好运
答案 1 :(得分:1)
我无法运行发布,但是查看Visual Studio的输出我觉得我找到了另一种解决方案。结果是obj \ Release \ AspnetCompileMerge文件夹有一个可部署和干净的项目版本。它包含与最终输出文件夹相同的文件。
我必须更改我的msbuild脚本以包含DeployOnBuild选项...
<MSBuild Properties="Configuration=Release;DeployOnBuild=True;"
StopOnFirstFailure="true"
Projects="$(BuildDirectory)\BigWave.ALL.sln"></MSBuild>