MSBuild的Rake任务找到的版本与我的版本不同

时间:2014-09-30 07:59:53

标签: visual-studio msbuild rake

我在使用rake构建脚本在本地工作时遇到了一些麻烦(它在我们的CI服务器上运行正常),因为它出于某种原因使用了不正确的msbuild版本。我也可以在Visual Studio 2013中构建它。

当我开始处理此项目时,我的网络项目.csproj文件中存在以下内容:

<PropertyGroup>
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
    <VSToolsPath Condition="'$(VSToolsPath)'==''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>

<!--<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />-->
<!-- Above commented out because it fails - keep reading for why... -->

为了调试目的,我添加了以下目标:

<Target Name="ShowVersions">
    <Message Text="VS version: $(VisualStudioVersion)" />
    <Message Text="VSToolsPath: $(VSToolsPath)" />
</Target>

以及随附的rake任务:

msbuild :debug_versions do |msb|
  msb.solution = "src/NCVIB.WebMVC/NCVIB.WebMVC.csproj"
  msb.targets :ShowVersions
end 

现在,如果我直接使用ShowVersions从终端运行MSBuild MyWebProject.csproj /t:ShowVersions目标,它会将我的VS版本正确识别为12.0。如果我运行rake debug_versions,则表示VS版本为11.0,因此导致WebApplications.targets失败(路径不存在)。

如何使rake任务选择与普通msbuild相同的VS版本?

0 个答案:

没有答案