我再次发布此查询。但是我不知道如何质疑已经问过的查询。
我在我的项目中使用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,提供了微软]
答案 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进行了更改[在我的问题中提到]。