使用 AssemblyVersion 标记程序集 App_licenses.dll(FxCop CA1016 规则)

Posted

技术标签:

【中文标题】使用 AssemblyVersion 标记程序集 App_licenses.dll(FxCop CA1016 规则)【英文标题】:Mark assembly App_licenses.dll with AssemblyVersion (FxCop CA1016 rule) 【发布时间】:2010-03-17 08:44:38 【问题描述】:

我正在尝试在我的网站中满足 FxCop 的规则。由于我使用了一些 Infragistics 控件,因此我有一个 licenses.licx 文件,该文件在发布后会变成“app_licenses.dll”程序集。

问题是这个 app_licenses.dll 程序集不符合规则 CA1016 (MarkAssembliesWithAssemblyVersion),我应该在“App_Licenses.dll”中添加一个 AssemblyVersion 属性。

我发现我可以将 AssemblyInfo 文件添加到我的网站,然后从 web.config 文件中引用它,如下所示:

<compilers> <compiler language="c#;cs;csharp" extension=".cs" compilerOptions="C:\....\AssemblyInfo.cs" type="Microsoft.CSharp.CSharpCodeProvider,System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4"> <providerOption name="CompilerVersion" value="v3.5" /> <providerOption name="WarnAsError" value="false" /> </compiler> </compilers>

AssemblyInfo.cs 包含:

使用系统; 使用 System.Reflection; 使用 System.Runtime.InteropServices; 使用 System.Resources;

[程序集:AssemblyVersion("1.0.0.0")] [程序集:AssemblyFileVersion("1.0.0.0")] [程序集:NeutralResourcesLanguageAttribute("es-ES")]

NeutralResourcesLanguageAttribute 适用于网站中另一个自动生成的 dll (app_GlobalResources.dll) 的另一个 FxCop 规则,但 app_licenses.dll 似乎忽略了程序集信息并且仍然弹出相同的 CA1016 错误。

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

我会忽略这条规则。并非所有规则在所有情况下都有意义。就这么简单。

【讨论】:

这不取决于我!我必须尝试一下,或者至少解释一下为什么我无法修复它

以上是关于使用 AssemblyVersion 标记程序集 App_licenses.dll(FxCop CA1016 规则)的主要内容,如果未能解决你的问题,请参考以下文章

AssemblyVersion,AssemblyFileVersion解释以及获取

AssemblyVersion,AssemblyFileVersion和AssemblyInformationalVersion之间有什么区别?

为啥区分 AssemblyFileVersion 和 AssemblyVersion

C#版本号管理

使用星号时是啥导致程序集版本增加?

从其他文件中读取程序集属性[关闭]