强制nuget使用.net framework 4.0程序集而不是4.5
我有一个混合了.NET4.5和4.0项目的项目 每次我更新Newtonsoft.JSON或添加新包时,4.5项目将引用不同于.NET 4.0项目的版本:强制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
<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包。