我目前正在开发一个。net应用程序,它由20个项目组成。其中一些项目是使用。net 3.5编译的,其他一些仍然是。net 2.0项目(到目前为止没有问题)。
问题是,如果我包含一个外部组件,我总是得到以下警告:
发现同一依赖程序集的不同版本之间存在冲突。
这个警告到底是什么意思,有没有可能排除这个警告(比如在源代码文件中使用#pragma disable)?
我目前正在开发一个。net应用程序,它由20个项目组成。其中一些项目是使用。net 3.5编译的,其他一些仍然是。net 2.0项目(到目前为止没有问题)。
问题是,如果我包含一个外部组件,我总是得到以下警告:
发现同一依赖程序集的不同版本之间存在冲突。
这个警告到底是什么意思,有没有可能排除这个警告(比如在源代码文件中使用#pragma disable)?
当前回答
也有这个问题-在我的情况下,这是由于有“特定版本”属性上的许多引用设置为真。在这些引用上将其更改为false就解决了这个问题。
其他回答
在花了几个小时分析详细的构建日志之后,我发现我的解决方案中的几个项目针对的是不同的. net版本。我将它们全部更改为. net 4.7.2并重新构建解决方案,错误得到解决。
当我的项目引用NETStandardLibrary时,我遇到了这样的问题,其中一个引用的程序集发布了netcore。只要把它作为网络标准发布,问题就解决了
=>检查将有一些实例的应用程序部分安装。
=>首先从卸载应用程序卸载该实例。
=>然后,清理,重建,并尝试部署。
这解决了我的问题。希望它也能帮助到你。 致以最亲切的问候。
我只是有这个警告消息,清理解决方案和重新编译(构建->清洁解决方案),它消失了。
如果你使用Nuget来管理依赖项,我还有另一种方法。我发现有时候VS和Nuget不匹配,Nuget无法识别你的项目不同步。的包。config会说一件事,但在References - Properties中显示的路径将指示其他内容。
如果你愿意更新你的依赖项,请执行以下操作:
From Solution Explorer, right click the Project and click 'Manage Nuget Packages' Select 'Installed packages' tab in left pane Record your installed packages You may want to copy your packages.config to your desktop first if you have a lot, so you can cross check it with Google to see what Nuget pkgs are installed Uninstall your packages. Its OK, we're going to add them right back. Immediately install the packages you need. What Nuget will do is not only get you the latest version, but will alter your references, and also add the binding redirects for you. Do this for all of your projects. At the solution level, do a Clean and Rebuild.
您可能希望从较低的项目开始,然后逐步到较高级别的项目,并在进行过程中重新构建每个项目。
如果你不想更新你的依赖项,那么你可以使用包管理器控制台,并使用语法update - package -ProjectName [yourProjectName] [packageName] -Version [versionNumber]