Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
强制nuget使用.net framework 4.0程序集而不是4.5_.net_Msbuild_Visual Studio 2013_Nuget - Fatal编程技术网

强制nuget使用.net framework 4.0程序集而不是4.5

强制nuget使用.net framework 4.0程序集而不是4.5,.net,msbuild,visual-studio-2013,nuget,.net,Msbuild,Visual Studio 2013,Nuget,我有一个混合了.NET4.5和4.0项目的项目 每次我更新Newtonsoft.JSON或添加新包时,4.5项目将引用不同于.NET 4.0项目的版本: <package id="Newtonsoft.Json" version="6.0.3" targetFramework="net40" /> net 4.5项目引用了4.5版本: <package id="Newtonsoft.Json" version="6.0.3" targetFramework="ne

我有一个混合了.NET4.5和4.0项目的项目

每次我更新Newtonsoft.JSON或添加新包时,4.5项目将引用不同于.NET 4.0项目的版本:

  <package id="Newtonsoft.Json" version="6.0.3" targetFramework="net40" />

net 4.5项目引用了4.5版本:

  <package id="Newtonsoft.Json" version="6.0.3" targetFramework="net45" />

但是,4.5项目引用了4.0项目,导致TFS生成时生成失败(因为它在1个文件夹中生成所有内容),并且当Newtonsoft.Json.NET 4.5生成在.NET 4.0项目生成之前在生成文件夹中结束时,导致针对.NET 4.0的项目失败

是否有办法强制
更新包
为解决方案中的所有项目选择
targetFramework=“net40”
(即使项目以.NET 4.5为目标)(每次更新后不必在文件中查找和替换)


与安装包-版本的操作类似?

NuGet根据项目的目标框架选择程序集,据我所知,您无法覆盖此行为。如何使其与安装包一起工作?@MattWard我在更新或在*.csproj和packages.config中添加新项目后进行查找和替换,以将所有内容指向.NET 4.0。当一个包包含每个框架版本的不同名称的DLL时,这是一个难题。搞乱安装程序,留下遗留文件。。。一团糟。如果能够覆盖它,那么当您更新框架版本时,它就不会产生额外的副作用了。只需提取json.net的.Net4.0版本,并为其添加一个静态引用,就可以完全摆脱NuGet包。