问题描述
所以 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 已签名,它应该可以工作。 希望这些信息对您有所帮助。