我想使用两个不同的Microsoft.Office.Interop程序集(版本11和12),具体取决于客户计算机上安装的Office版本。
我已经能够将这两个组件添加到我的项目中(我使用它们是loccaly - 它们位于我的bin文件夹中,位于两个不同的子文件夹中),我在这个程序集上使用了别名,以便能够同时使用它们在我的项目中(别名是Excel11和Excel12)。
但不幸的是,当我尝试构建解决方案时,我会收到警告:
无法解决之间的冲突 “的Microsoft.Office.Interop.Excel, 版本= 12.0.0.0,文化=中立, PublicKeyToken = 71e9bce111e9429c“和 “的Microsoft.Office.Interop.Excel, 版本= 11.0.0.0,文化=中立, 公钥= 71e9bce111e9429c”。 选择 “的Microsoft.Office.Interop.Excel, 版本= 12.0.0.0,文化=中立, 公钥= 71e9bce111e9429c” 任意。
答案 0 :(得分:0)
要确保它们位于同一页面上,这就是我想要别名http://www.dotnetperls.com/extern的内容,如果由于一些不适合您的奇怪原因,您可以使用下面的其他方法。
为了清洁,您可以创建几个新项目。对于您需要实现的每个版本,请为其命名,例如Excel11,Excel12等特定版本。
然后为你希望能够从每个函数访问的函数构建包装类,你可以得到花哨的dancy并在你的包装类扩展的单独的Common Project中构建一个抽象类,这样你就可以从你的main中一般地引用它们了。代码由Abstract类名称表示均匀性。您只需要在主项目中添加对新项目的引用,并根据您检查版本,注册表项或其他方式选择所需的包装器。希望它有所帮助。