我试图使用c# 4.0编译我的excel插件,并在Visual Studio中构建我的项目时开始遇到这个问题。重要的是要告诉你,我以前从来没有遇到过这个问题。什么会导致这种情况发生?
当前回答
在我的解决方案中有太多的项目需要逐一检查和单独更新,所以我通过以下方法解决了这个问题:
右键单击我的解决方案并选择“管理解决方案的NuGet包…” 进入更新选项卡 找到受影响的包并选择Update 单击OK,这将使包的所有实例保持最新
其他回答
请看这个答案。
转到发布页面,点击“应用程序文件”。从那里您应该会看到DLL的列表。确保那些给你带来麻烦的人的发布状态标记为“包括”而不是“先决条件”。
如果你试了这个问题的所有其他答案,你会:
您的解决方案中有多个项目 有一个项目(项目a)引用另一个项目(项目B),后者的项目引用一个NuGet包。 在项目A中,您使用Intellisense/ReSharper引入项目B中引用的NuGet包的引用(当项目B中的方法返回由NuGet包提供的类型并且该方法在项目A中使用时,这可能会发生) 通过NuGet包管理器(或CLI)更新NuGet包。
...你可能在你的项目的引用中有不同版本的NuGet包DLL,因为Intellisense/ReSharper创建的引用将是一个“正常的”引用,而不是预期的NuGet引用,所以NuGet更新过程不会发现或更新它!
要解决这个问题,请删除项目A中的引用,然后使用NuGet安装它,并确保所有项目中的NuGet包都是相同的版本。(如回答中所述)
生活小贴士:
当ReSharper/Intellisense建议添加一个引用到你的项目时,这个问题就会出现。它可能比上面的例子复杂得多,多个交织的项目和依赖关系使其难以跟踪。如果ReSharper/Intellisense建议的引用实际上来自NuGet包,使用NuGet来安装它。
I recently hit this problem. In my case, I have NuGet packages on different assemblies. What I had was different versions of the same NuGet packages associated with my own assemblies. My solution was to use the NuGet package manager upon the Solution, as opposed to the individual projects. This enables a "consolidation" option, where you can upgrade your NuGet packages across as many projects as you want - so they all reference the same version of the assembly. When I did the consolidations, the build failure disappeared.
您需要使用密钥对程序集进行签名。进入选项卡签名下的项目属性:
我得到类似的编译器错误。一旦我将dll文件的依赖项目添加到解决方案中,问题就解决了。
推荐文章
- 实体框架核心:在上一个操作完成之前,在此上下文中开始的第二个操作
- 如何为构造函数定制Visual Studio的私有字段生成快捷方式?
- 为什么Visual Studio 2015/2017/2019测试运行器没有发现我的xUnit v2测试
- 如何使用JSON确保字符串是有效的JSON。网
- AppSettings从.config文件中获取值
- 通过HttpClient向REST API发布一个空体
- 如何检查IEnumerable是否为空或空?
- 自动化invokerrequired代码模式
- 在c#代码中设置WPF文本框的背景颜色
- Visual Studio复制项目
- 在c#中,什么是单子?
- c#和Java中的泛型有什么不同?和模板在c++ ?
- c#线程安全快速(est)计数器
- 如何将此foreach代码转换为Parallel.ForEach?
- 如何在iis7应用程序池中设置。net Framework 4.5版本