添加COM dll作为特定位置的参考

时间:2009-09-08 14:04:53

标签: c# .net excel

我再次发布此查询。但是我不知道如何质疑已经问过的查询。

我在我的项目中使用COM dll作为参考。我希望从计算机的任何位置引用该dll。

<runtime>    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">        <dependentAssembly>             <assemblyIdentity                 name="MyAssembly"                 culture=""                 publicKeyToken="8968ee41e78ce97a" />             <codeBase                 version="1.0.0.0"                 href="file://c:/some_path/myassembly.dll" />        </dependentAssembly>    </assemblyBinding></runtime>

我在App.config文件中添加了上面提到的代码。在签署之前未签名的Interop.Microsoft.Office.Interop.Excel.dll之后,我为PublicKeytoken提供了适当的值。

我觉得这很好。

但是当我运行应用程序时,exe期望dll出现在同一个文件夹中。那也是

未签名的版本。

如果我的代码中缺少任何内容,有人可以建议我吗?

谢谢, 阿米特

PS:在编码过程中,我添加了无符号版dll的引用。来自C:\ Program files ... \ [已经存在dll,提供了微软]

2 个答案:

答案 0 :(得分:0)

这只是一种猜测而没有复制你的确切情况......看来你错过了

 <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>

在我看过的所有例子以及我对它的所有用法中,上面的&lt; assemblyIdentity ...&gt;标记后跟一个&lt; bindingRedirect ...&gt ;.顺便说一句,您还可以将原始版本指定为以下范围:

 <bindingRedirect oldVersion="0.0.0.0-99.9.9.9" newVersion="2.0.0.0"/>

答案 1 :(得分:0)

我想我已经有了解决方案。正如我在我的问题中提到的,我添加了对旧的[unsigned]版本的dll的引用。我删除了那个&amp;添加了对已签名的dll的引用,然后对App.config进行了更改[在我的问题中提到]。