3

使用从命令行调用的以下 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,没有文件。

4

2 回答 2

2

根据此http://sedodream.com/2012/08/19/VisualStudioProjectCompatabilityAndVisualStudioVersion.aspx,当您将 VS2010 和 VS2012 用于相同的解决方案时,您必须指定您正在使用的 VS 版本。我只是添加了版本,现在它可以工作了。

我希望这可以帮助你!

最好的祝福

于 2012-11-28T09:48:46.147 回答
1

我无法让发布运行,但查看 Visual Studio 的输出,我想我找到了替代解决方案。原来 obj\Release\AspnetCompileMerge 文件夹有一个可部署且干净的项目版本。它包含与最终输出文件夹相同的字节文件。

我确实必须更改我的 msbuild 脚本以包含 DeployOnBuild 选项...

<MSBuild Properties="Configuration=Release;DeployOnBuild=True;" 
         StopOnFirstFailure="true" 
         Projects="$(BuildDirectory)\BigWave.ALL.sln"></MSBuild>
于 2012-08-31T21:50:39.720 回答