您能告诉我这种情况的最佳方法吗?我继承了一个新项目,之前没有遇到过这种情况。
我们在C#Windows窗体应用程序中引用了用于生成文档的第三方工具。
在人们的PC上安装了部署环境中的第三方工具有两个不同版本 - v1.0和v2.0。
我只能构建我们的Windows窗体应用程序以使用第三方工具的v1.0或v2.0。为此,我必须在构建之前在我的开发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.
项目中似乎只有一个对dll的引用,即使用GAC引用。
C:\WINDOWS\assembly\GAC\Interop.iManage\1.0.0.0__141424aa94e741g\third.partyTool.dll
我卸载v1.0并安装v2.0
的更改C:\WINDOWS\assembly\GAC\Interop.iManage\2.0.0.0__141424aa94e741g\third.partyTool.dll
在部署我们的应用程序方面,我们对文件进行了简单的XCOPY,没有安装程序。
有没有办法可以在我们的应用程序中保存这两个引用,然后在部署后使用正确的引用?或者是否有可用于解决此问题的部署方法?
由于
答案 0 :(得分:1)
您可以始终针对1.0.0第三方程序集构建,然后执行绑定重定向(在您的应用程序配置中)以使用2.0.0版本(如果可用)。
请参阅此处:http://msdn.microsoft.com/en-us/library/eftw1fys(v=vs.100).aspx了解详情。
SO帖子还描述了设置绑定重定向时的常见问题:Assembly binding redirect does not work。