脚本不会发布VS2012的网站

时间:2012-08-31 21:41:16

标签: msbuild visual-studio-2012

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

2 个答案:

答案 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>