需要一个C#程序集来引用一个强名称程序集,但是要松散引用。

4
所以问题来了。我正在为我工作的公司编写一些StyleCop插件程序集。因此,这些程序集需要引用强命名的Microsoft.StyleCop.CSharp.dll等文件。
问题在于,如果我构建并将其传递给我的开发组中的开发人员,他们必须拥有相同版本的StyleCop dll(目前为4.3.3.0),否则它将无法加载。
如何使我的附加规则DLL更独立?我应该只是在GAC中安装我的4.3.3.0版本的那些从属StyleCop dll吗?一个程序集(而不是应用程序)可以使用策略文件吗?
哦,还有一个主要问题是,如果可能的话,我希望它能与客户安装的任何版本的StyleCop配合使用(或者至少是4.3.3.0或更高版本)。
提前致谢。
2个回答

5

是的,你应该为其他开发人员安装相同版本。如果不这样做,由于StyleCop内部的更改,可能会出现不可预测的运行时故障。这可能就是他们增加版本号的原因。

如果你不想这样做,可以在app.config文件中配置不同的程序集绑定。在配置中需要指定你打算在运行时使用的实际版本号。是的,这甚至可以通过策略来完成。但是,我认为最好一开始就包含正确的DLL。


是的,问题也在于此。如果我在全局程序集缓存中安装我所引用的DLL,那么它会破坏StyleCop,因为显然StyleCop开始在那里寻找其它依赖项或其他东西。很奇怪。所以,我想我只能限制用户使用StyleCop 4.3.3.0,并在StyleCop升级时发布新版本。 - James Michael Hare

1
在您的项目中,转到 StyleCop 引用的属性。尝试将 "Specific Version" 属性设置为 false。

这仅影响编译时链接。 - Jennifer Zouak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接