2012-11-30 56 views
3

我在Jenkins上收到此構建錯誤。我會很感激任何幫助爲它尋找解決方案,甚至有人指出我正確的方向。「AssemblyInfo」在Jenkins構建的MSBuild任務失敗

這是我得到的錯誤:

「d:\詹金斯\工作*絕密* \工作區\ CAPS.msbuild」(默認目標) (1) - >(編譯目標) - >錯誤MSB4018:「AssemblyInfo」任務 意外失敗。 System.ArgumentException:version參數 name:指定的字符串不是有效的版本號 Microsoft.Build.Extras.Version.ParseVersion(String version)at Microsoft.Build.Extras.AssemblyInfo.Execute()at Microsoft。 Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() 在 Microsoft.Build.BackEnd.TaskBuilder.d__20.MoveNext()

我驗證過的AssemblyInfo.cs文件的所有看起來不錯(據我所知),沒有什麼似乎與該解決方案的msbuild文件。

我已經谷歌搜索了我能想到的所有錯誤的派生。

任何意見,將不勝感激。

評論迴應:

從AssemblyInfo.cs文件:

[assembly: AssemblyVersion("2.0.*")] 

從MSBuild的文件:

<PropertyGroup> 
    <ProjectName>CAPS</ProjectName> 
    <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> 
    <VersionLabel Condition=" '$(VersionLabel)' == '' ">0.0</VersionLabel> 
    <AssemblyVersion>2.0.$(VersionLabel)</AssemblyVersion> 
</PropertyGroup> 

這也可能是相關的:

<Target Name="Compile"> 
     <ItemGroup> 
      <UpdateFiles Include="**\AssemblyInfo.cs" Exclude="**\.svn\**" /> 
     </ItemGroup> 
     <AssemblyInfo AssemblyInfoFiles="@(UpdateFiles)" AssemblyVersion="$(AssemblyVersion)" AssemblyFileVersion="$(AssemblyVersion)"/> 

     <MSBuild Projects="$(ProjectName).sln" Properties="Configuration=$(Configuration);RunCodeAnalysis=true" /> 
</Target> 
+0

'指定的字符串不是有效的版本號' - 你試圖寫什麼版本號? –

+0

用信息更新了問題。 –

+0

...和'$(AssemblyVersion)'得到期望值? ''可以告訴你。 –

回答

4

我的猜測是你使用的VersionLabel變量沒有解決,它試圖將文字2.0。$(VersionLabel)寫入AssemblyInfo文件中。

一面注意:您將AssemblyVersion和AssemblyFileVersion設置爲相同的數字,在強烈的命名情況下,您將無法熱插拔Dll。通常AssemblyVersion是'2.0',你的AssemblyFileVersion是'2.0.13345.02',或者你的編號方案是什麼。這樣一個在2周內創建的dll將會有'2.0'並且'2.0.13352.01'可以被替換並且仍然可以工作。

如果您每次發佈整個軟件包,這可能並不重要,但是您沒有正確使用這些字段。 [:的AssemblyVersion(「2.0。*」)裝配在你的程序集信息的版本沒有[裝配:

從另一個問題

1

它在任務中的錯誤,如果你改變了看到這個answer的AssemblyVersion( 「2.0.0.0」)]它會工作。

相關問題