我有DSL工具解决方案。

我需要为此项目添加一个弱命名引用。 因为DSL Tools项目DLL是强名称的,所以我不能使用弱名称的DLL。

由于无法重新编译DLL,因此无法使DLL具有高名称。

我试图通过转到Dsl和DslPackage项目属性来使DSL Tools项目DLL的名称变弱,然后在Sigining选项卡中取消选中“签署程序集”选项。

然后我编译它。 错误列表显示以下错误 通用标签

在VS2005输出窗口中,我看到gacutil被调用 通用标签

之后,我使用了命令提示符,并且gacutil.exe错误显示为: 通用标签

我不知道为什么以及如何调用gacutil.exe。 我查看了项目和解决方案属性,没有配置任何选项来调用gacutil.exe。 我什至在每个文件中都查找了“ gacutil.exe”,但什么也没找到。

我真正想要的是能够使用我无法使用强名称命名的弱名称DLL。 因此,我一直试图使DSL Tools DLL的名称变弱,但我不能。

有关如何解决此问题的任何帮助吗?

非常感谢, 路易斯·菲利佩

有帮助吗?

解决方案

将运行时绑定与反射结合使用是一个很好的解决方案,并且可以正常工作。除此以外,我已经实现的另一种解决方案是启动一个单独的AppDomain,并让该AppDomain进行程序集的加载并运行所需的任何方法。这种方法的缺点是额外的复杂性和性能。在实践中,当他在Visual Studio的进程空间中启动一个单独的.net应用程序时,真的必须知道他在做什么。好处是,只要小心一点,就可以完全获得类型安全性。

其他提示

除了上面写的答案, Visual Studio的所有加载项都必须是强名称。

可以通过在运行时加载程序集并使用反射来调用方法来解决某些问题。

关于, 路易斯

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top