.NET DLL参考 - 部署在具有不同版本的第三方DLL的PC上



您能告诉我这种情况的最佳方法吗?我已经继承了一个新项目,并且以前没有遇到过这种情况。

我们在C#Windows表单应用程序中有一个引用到用于生产文档的第三方工具。

在人的PC上安装的部署环境中有两个不同的版本-V1.0和v2.0。

我只能构建我们的Windows表单应用程序,以使用第三方工具的V1.0或V2.0。为此,在构建之前,我必须在开发PC上安装任何一个版本。这显然是一种不好的方法,因为我每次都必须卸载/重新安装第三方工具。如果我在PC上使用错误的版本构建,则用户收到

Could not load file or assembly 'Interop.IManage, Version=1.0.0.0, Culture=neutral,     
PublicKeyToken=141424aa94e741g5' or one of its dependencies. The located assembly's 
manifest definition does not match the assembly reference.

似乎在使用GAC参考的项目中只有一个对DLL的引用。

C:WINDOWSassemblyGACInterop.iManage1.0.0.0__141424aa94e741gthird.partyTool.dll

哪个更改为i卸载v1.0并安装v2.0

的更改。
C:WINDOWSassemblyGACInterop.iManage2.0.0.0__141424aa94e741gthird.partyTool.dll

在我们的应用程序部署方面,我们进行了简单的文件,没有安装程序。

有没有一种方法可以在应用程序中保存两个参考,然后在部署后使用正确的参考文献?还是我可以用来解决这个问题?

谢谢

您可以始终针对1.0.0第三方组件构建,然后进行绑定的重定向(在您的应用程序配置中)以使用2.0.0版本,如果可用。

请参阅此处:http://msdn.microsoft.com/en-us/library/eftw1fys(v=vs.100).aspx有关更多详细信息。

这里还有更多示例:http://blogs.msdn.com/b/thottams/archive/2007/01/01/01/30/introduction-to--versioning-to-versioning-and-bindingrect.aspx?redirected=true。

SO帖子还描述了设置绑定重定向时的常见问题:汇编绑定重定向不起作用。

最新更新