在外部引用和存储强名称以供重用

发布于 2024-09-25 02:02:19 字数 296 浏览 11 评论 0原文

I have a lot of assemblies that have set the InternalsVisibleToAttribute pointing one specifc assembly within the same solution. Unfortunately the assembly that is being pointed to has a stong name, so I always have to put the same public key token over and over again into the AssemblyInfo.cs files. Since there is no precompiler in c#, how would I ideally eliminate this redundancy.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梅窗月明清似水 2024-10-02 02:02:19

您有几个简单的选项:

  1. 在 AssemblyInfo.cs 文件中使用常量而不是文字。
  2. 将此属性添加到链接的共享文件(例如:CommonFriendAssemblies.cs)中,而不是复制到您的个人项目中。

#1 管理起来稍微简单一些,但它有一个不幸的副作用 删除对引用项目中引用的内部结构的 IntelliSense 支持

#2 管理起来有些复杂,但它不会干扰 IntelliSense 支持。

You have a couple of easy-ish options:

  1. Use a constant instead of a literal in your AssemblyInfo.cs files.
  2. Add this attribute to a shared file (e.g.: CommonFriendAssemblies.cs) that is linked rather than copied into your individual projects.

#1 is somewhat simpler to manage, but it has the unfortunate side-effect of removing IntelliSense support for the referenced internals in the referencing project.

#2 is somewhat more complex to manage, but it doesn't interfere with IntelliSense support.

江挽川 2024-10-02 02:02:19

也许你可以使用 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); #>")]

maybe you could use t4

rename AssemblyInfo.cs to AssemblyInfo.tt

and add something like this

<#@ template language="C#v3.5" hostspecific="True" debug="True" #>
<#@ output extension="cs" #>

[assembly: InternalsVisibleTo("<# Write(System.Reflection.Assembly.GetExecutingAssembly().FullName); #>")]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文