2011-03-17 74 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'" 
    /> 

我不知道是否已经有使用属性,你可以在项目文件中使用,或者如果您需要声明自己(也许$(平台)为此?)