C# 已签名的应用程序如何使用未签名的程序集(可以在客户站点重新生成)

C# 已签名的应用程序如何使用未签名的程序集(可以在客户站点重新生成),c#,C#,我的C#.net可执行文件需要签名,以便在提供密码访问权限的另一个程序集中使用其中一个方法 该可执行文件需要引用并使用未签名的程序集。未签名的原因是我们为客户提供了一种在站点上重新生成的方法(它将访问应用程序中的建模自定义项包装起来) 单个可执行文件是否可以同时使用有符号程序集和无符号程序集?您不能从有符号程序集引用无符号程序集,但可以使用其中一种方法轻松加载无符号程序集 通常,您在签名程序集中提供接口(或者基类,如果您愿意),并在整个代码中使用该接口在编译时获取信息。客户的未签名程序集(插件)

我的C#.net可执行文件需要签名,以便在提供密码访问权限的另一个程序集中使用其中一个方法

该可执行文件需要引用并使用未签名的程序集。未签名的原因是我们为客户提供了一种在站点上重新生成的方法(它将访问应用程序中的建模自定义项包装起来)


单个可执行文件是否可以同时使用有符号程序集和无符号程序集?

您不能从有符号程序集引用无符号程序集,但可以使用其中一种方法轻松加载无符号程序集

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


注意:您还可以研究“如何在C#/.Net中实现插件”问题,以获得解决方法。

我认为使用未签名程序集的唯一方法是在运行时使用反射加载它


如果可执行文件引用了非强名称的内容,则不能向其添加强名称

谢谢,我不知道Load或LoadFile绕过了签名约束!我将尝试采用这种方法,但只是想知道,这难道不是一个安全漏洞吗?@DarrinDoherty,“旁路”可能是一个错误的词。。。它被设计为加载您想要/需要的任何程序集-假定您的完全信任代码理解安全含义并正确加载。