微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CLR 如何从程序集中加载文件?

如何解决CLR 如何从程序集中加载文件?

下面是一个文件程序集,由两个托管模块组成,一个带有清单:

enter image description here

所以 RUT.netmodule(RUT 代表罕见使用的类型)是一个文件(.netmodule),它是程序集的一部分。

假设我的客户端应用程序引用了 hidden 中的一个类型,notify.classList.toggle('hidden'); // New code below: setTimeout(() => { notify.classList.add('hidden'); },3000); 一个名称程序集,并且它安装在 GAC 中。 因为 RUT.netmodule 并不实际驻留在 MultiFileLibrary.dll 中,所以 GAC 不会有 RUT.netmodule

所以我的问题是,也许 CLR 被配置为在知道引用的类型位于不同的模块文件中后检查应用程序的基目录以查找 MultiFileLibrary.dll。但这也意味着 RUT.netmodule 必须始终位于应用程序的基目录中,这对我来说听起来很奇怪,好像我有多个应用程序然后我需要在它们的基目录中有多个 RUT.netmodule。是在GAC中“安装”RUT.netmodule还是在GAC中安装RUT.netmodule时,任何.netmodule文件也被复制到GAC中?

解决方法

我从未使用过多文件程序集,但据我所知,您应该能够使用程序集链接器工具 (al.exe) 对 .netmodule 进行签名。 documentation 包含一个可能相关的小引号:

如何:使用强名称对程序集进行签名
...

  • 使用程序集链接器 (Al.exe) 将 .NET Framework 代码模块(.netmodule 文件)与密钥文件链接起来。

我的猜测是,即使您将程序集放在 GAC 中,它仍然会引用 .netmodule,如果 .netmodule 已签名,它应该可以工作。 希望这些信息对您有所帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。