用 AssemblyInfo 覆盖 SharedAssemblyInfo 的属性
Overriding attributes of SharedAssemblyInfo with AssemblyInfo
我正在为解决方案中的多个项目使用共享程序集信息文件 (GlobalAssemblyInfo.cs),每个项目 "Add[ed] As Link"。每个项目还有自己的 AssemblyInfo.cs 来添加并非所有项目都通用的属性。不允许在两个文件中出现重复的属性。
其中一个项目需要具有在其他项目之间以不同方式共享的属性之一,但共享其余的。是否有可能以及如何让 AssemblyInfo.cs 中的属性覆盖 GlobalAssemblyInfo.cs 中的相同属性?或者我是否必须从共享文件中删除该属性并将其单独添加到所有项目中,即使除了一个之外所有项目都相同?
特别指出,除一个项目外,所有项目共享的属性是:
[assembly: ComVisible(false)]
其中一个项目需要有[assembly: ComVisible(true)]
,这就造成了重复属性的冲突。澄清一下,我要找的是类似 [assembly: @override ComVisible(true)]
的东西,如果它存在的话,但是我还没有找到类似的东西。
最简单的答案是您的共享程序集信息应该只包含所有项目都相同的项目。
任何需要不同值的项都必须在本地程序集信息中定义,而不是在共享信息中定义。
或者,您可以使用构建任务以更分层/可继承的方式生成程序集信息文件。
我正在为解决方案中的多个项目使用共享程序集信息文件 (GlobalAssemblyInfo.cs),每个项目 "Add[ed] As Link"。每个项目还有自己的 AssemblyInfo.cs 来添加并非所有项目都通用的属性。不允许在两个文件中出现重复的属性。
其中一个项目需要具有在其他项目之间以不同方式共享的属性之一,但共享其余的。是否有可能以及如何让 AssemblyInfo.cs 中的属性覆盖 GlobalAssemblyInfo.cs 中的相同属性?或者我是否必须从共享文件中删除该属性并将其单独添加到所有项目中,即使除了一个之外所有项目都相同?
特别指出,除一个项目外,所有项目共享的属性是:
[assembly: ComVisible(false)]
其中一个项目需要有[assembly: ComVisible(true)]
,这就造成了重复属性的冲突。澄清一下,我要找的是类似 [assembly: @override ComVisible(true)]
的东西,如果它存在的话,但是我还没有找到类似的东西。
最简单的答案是您的共享程序集信息应该只包含所有项目都相同的项目。
任何需要不同值的项都必须在本地程序集信息中定义,而不是在共享信息中定义。
或者,您可以使用构建任务以更分层/可继承的方式生成程序集信息文件。