我有很多程序集将InternalsVisibleToAttribute设置为指向同一解决方案中的一个特定程序集。不幸的是,被指向的程序集有一个强名称,所以我总是必须一遍又一遍地将相同的公钥令牌放入 AssemblyInfo.cs 文件中。由于 c# 中没有预编译器,我将如何理想地消除这种冗余。
问问题
193 次
2 回答
1
你有几个简单的选择:
- 在您的 AssemblyInfo.cs 文件中使用常量而不是文字。
- 将此属性添加到链接的共享文件(例如:CommonFriendAssemblies.cs)中,而不是复制到您的各个项目中。
#1 管理起来稍微简单一些,但它有一个不幸的副作用,即删除了对引用项目中引用的内部组件的 IntelliSense 支持。
#2 管理起来有些复杂,但它不会干扰 IntelliSense 支持。
于 2010-09-27T13:43:31.970 回答
0
也许你可以使用 t4
重命名AssemblyInfo.cs
为AssemblyInfo.tt
并添加这样的东西
<#@ template language="C#v3.5" hostspecific="True" debug="True" #>
<#@ output extension="cs" #>
[assembly: InternalsVisibleTo("<# Write(System.Reflection.Assembly.GetExecutingAssembly().FullName); #>")]
于 2010-09-27T13:25:06.473 回答