我试图使用c# 4.0编译我的excel插件,并在Visual Studio中构建我的项目时开始遇到这个问题。重要的是要告诉你,我以前从来没有遇到过这个问题。什么会导致这种情况发生?


当前回答

在我的解决方案中有太多的项目需要逐一检查和单独更新,所以我通过以下方法解决了这个问题:

右键单击我的解决方案并选择“管理解决方案的NuGet包…” 进入更新选项卡 找到受影响的包并选择Update 单击OK,这将使包的所有实例保持最新

其他回答

在我的解决方案中有太多的项目需要逐一检查和单独更新,所以我通过以下方法解决了这个问题:

右键单击我的解决方案并选择“管理解决方案的NuGet包…” 进入更新选项卡 找到受影响的包并选择Update 单击OK,这将使包的所有实例保持最新

您需要使用密钥对程序集进行签名。进入选项卡签名下的项目属性:

这是在更改引用的.dll的版本时引起的。您需要删除目标构建文件夹中的所有项或.dll。

您的程序集是否正确签名?

要检查这一点,在项目上按Alt+Enter(或右键单击,然后Properties)。点击“签名”。验证复选框“签名程序集”已选中,强名称密钥文件已选中,且“仅延迟签名”未选中。

为任何人添加我的解决方案,这可能会有所帮助。

I had a ClickOnce solution throwing this error. The app referenced a common "Libs" folder and contained a project reference to a Foo.dll. While none of the projects in the solution referenced the static copy of the Foo.dll in the "Libs" folder, some of the references in that folder did (ie: my solution had refs to Libs\Bar.dll which referenced Foo.dll.) Since the CO app pulled all the dependencies from Libs as well as their dependencies, both copies were going into the project. This was generating the error above.

我通过将我的Libs\Foo.dll静态版本移动到一个子文件夹Libs\Fix\Foo.dll来解决这个问题。此更改使ClickOnce应用程序只使用DLL的项目版本,并且错误消失了。