4

我的 C# .net 可执行文件需要签名才能使用我们的另一个程序集中提供对密码访问的方法之一。

同一个可执行文件需要引用和使用未签名的程序集。它未签名的原因是我们为客户提供了一种在现场重新生成它的方法(它包含对应用程序中建模定制的访问)。

单个可执行文件有什么办法可以同时使用已签名和未签名的程序集?

4

2 回答 2

9

您不能从已签名的程序集中引用未签名的程序集,但您可以使用Assembly.Load方法之一轻松加载。

通常,您在已签名的程序集中提供接口(或基类,如果您愿意),并在整个代码中使用该接口在编译时获取信息。客户的未签名程序集(插件)在一些特别标记的类上实现该接口。然后您的应用程序加载程序集(通过默认位置Load或通过指定文件LoadFile),查找并构造类,然后使用它在运行时获取信息。

注意:您还可以查看“如何在 C#/.Net 中实现插件”问题的方法。

于 2013-02-13T17:39:36.263 回答
1

我相信您使用无符号程序集的唯一方法是在运行时使用反射加载它。

如果可执行文件引用了非强命名的内容,则不能将强名称添加到可执行文件中。

于 2013-02-13T17:41:21.377 回答