2011-03-17 116 views
0

當我嘗試建立我的項目,我得到以下錯誤:的AssemblyFileVersion導致構建失敗

error : Unable to update the AssemblyFileVersion for c:\builddir\MyProject\AssemblyInfo.cs: No stub entry for AssemblyFileVersion was found in the AssemblyInfo file. 

我發現this文章,這意味着一個「存根」屬性是必需的。因此,在我的AssemblyInfo.cs中,我試圖指定一個:

[assembly: AssemblyFileVersion("1.0.0")] 

但是,它不被識別。我終於遇到this文章,其中說你不能在CF中使用AssemblyFileVersion屬性。構建腳本使用的目標文件也用於構建其他非CF項目,並且需要爲它們更新FileVersion。

是否可以在AssemblyInfo.cs文件,目標文件或構建腳本中放置一些東西來阻止它成爲問題?

回答

0

是的,是這樣的:

#if !(WindowsCE || PocketPC) 
[assembly: AssemblyFileVersion("1.0.0")] 
#endif 
+0

這似乎不起作用,因爲AssemblyFileVersion無法識別CF – 2011-03-30 12:37:57

+0

這就是#if存在的原因。如果它是一個CF應用程序,WindowsCE或PocketPC將被定義,並且該行不會被編譯。 – ctacke 2011-03-30 13:05:28

+0

你打算放這個代碼的地方? – 2011-03-30 13:13:19

0

如果使用在其他的答案中描述的方式預處理對你不起作用,考慮將的AssemblyFileVersion屬性到一個單獨的源文件,並根據條件包括在項目源文件:

<Compile Include="AssemblyInfo.cs" /> 
<Compile Include="AssemblyInfo.AssemblyVersion.cs" 
    Condition=" 
    '$(TargetPlatform)' == 'WindowsCE' OR 
    '$(TargetPlatform)' == 'PocketPC'" 
    /> 

我不知道是否已經有使用屬性,你可以在項目文件中使用,或者如果您需要聲明自己(也許$(平臺)爲此?)