對於我們的Web項目,我需要項目的程序集版本來版本化我們的靜態內容。MSBuild目標在服務器上失敗,但在本地成功
我已經宣佈在web工程文件的目標,以獲得集標識並從中獲取的版本號,如:
<PropertyGroup>
<IvanhoWebVersion>
</IvanhoWebVersion>
</PropertyGroup>
<Target Name="SetIvanhoWebVersion" AfterTargets="AfterBuild">
<Message Text="-----------------">
</Message>
<Message Text="Entering target SetIvanhoWebVersion">
</Message>
<Message Text="-----------------">
</Message>
<GetAssemblyIdentity AssemblyFiles="$(OutputPath)$(AssemblyName).dll">
<Output TaskParameter="Assemblies" ItemName="AssemblyIdentities" />
</GetAssemblyIdentity>
<CreateProperty value="%(AssemblyIdentities.Version)">
<Output TaskParameter="Value" PropertyName="IvanhoWebVersion" />
</CreateProperty>
<Message Text="Assembly version = v$(IvanhoWebVersion)">
</Message>
<Exec Command=" "$(SolutionDir)Ivanho.Lib\TranslationGenerator\TranslationGenerator.exe" "$(ProjectDir)Areas\UI\Static\locales\translationsrc\Translations-EN-NL-AR.xlsx" "$(ProjectDir)Areas\UI\Static\locales\v.$(IvanhoWebVersion)"" />
</Target>
嘗試檢查時,在本地建立的時候,然而,這就像一個魅力這對我們的TFS構建服務器失敗,出現以下錯誤:
Cannot get assembly name for "bin\Ivanho.Web.dll". Could not load file or assembly 'Ivanho.Web.dll' or one of its dependencies. The system cannot find the path specified.
此錯誤是在同一直線上GetAssemblyIdentity
調用拋出。
我不明白爲什麼這不是在構建服務器上工作,我很新的MSBuild,有人可以指出我在正確的方向嗎?提前謝謝了!