我们有一个应用程序A,它具有对包含一些静态方法的程序集B的引用。大会B是在同一个Visual Studio解决方案的应用A.拖放DLL丢失MissingMethodException
我们希望我们的应用程序A的用户能够编写插件。他们通过在Visual Studio中创建一个新的类库解决方案来构建插件(目前),为应用程序A获取Nuget包,并在其插件解决方案中将引用添加到程序集B,以便编译插件代码。
他们并不需要测试他们的插件,这就是为什么代码只需要编译,虽然这将是很好,如果在应用程序A上运行它时,
一旦他们的编译代码,他们可以调试他们的代码,插件的DLL被放入一个共享中,并提供给一个不同的团队(我知道是官僚主义者),他们将其与应用程序A的其余部分放在一起。
我想让插件DLL使用与所有应用程序A的DLL一起使用的程序集B DLL。
当我运行应用程序A时,Activator类拿起插件DLL并正确创建实例,但只要程序集B中的一个静态方法被调用,插件就会抛出MissingMethodException。
事情我已经尝试: 如果你创建和应用内A的Visual Studio解决方案编译该插件的解决方案肯定是正常工作。
应用A使用框架.NET 4.5,组装B使用框架.NET 4.0,我试图建设有没有成功这两个框架的插件。
插件解决方案中引用程序集B的“特定版本”在所有测试情况下都是错误的。
我欢迎这个问题即时解决方案,而且对如何获得这些插件的工作更广泛的架构建议。我很抱歉,如果有重复的问题,我找不到一个。
或ILSpy(这是免费的) –