我已經創建了一個包含下面的頭一個MSBuild凸出文件:VisualStudioVersion =「VersionLatest」沒有被拾起
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0" TargetFrameworkVersion="4.5" VisualStudioVersion="VersionLatest">
這個凸出文件用於多項SSDT項目引發的MSBuild,配合部署。
對於大多數開發人員來說,這很好。但是,一個開發人員在嘗試運行構建時遇到Deploy72002
異常。根據this的回答,這是由於未設置VisualStudioVersion。果然,在MSBuild調用之前的批處理文件中添加
set VisualStudioVersion="12.0"
可修復問題。
但是,我在印象之下(我現在找不到源代碼)在proj文件的xml中設置VisualStudioVersion="VersionLatest"
足以使它使用安裝的最高版本的VS。我甚至嘗試將它從VersionLatest
設置爲12.0
,並且將它從根節點移動到<PropertyGroup>
中的它自己的節點中。
我寧願在批處理文件中沒有對12.0的硬編碼引用。我是否錯過了明顯的東西來使VersionLatest工作?
「VersionLatest」現在在Microsoft.Build.Utilities.v12.0.dll中簡單地硬編碼爲12.0。 VS的下一個版本可能會有另一個MSBuild版本,可能會將其硬編碼爲不幸的數字。或者它會保持12.0,因爲你要求ToolsVersion 12.0 :)直到你擁有該版本並知道它做了什麼之前,不要做任何激烈的事情。 –
即使它在系統中硬編碼爲12,爲什麼不從這個開發人員的.proj文件中選取? –