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

Wie*_*sma 8 .net msbuild nuget visual-studio-2013

我有一个混合.NET 4.5和4.0项目的项目.

每当我更新Newtonsoft.JSON或添加新包时,4.5项目将引用与.NET 4.0项目不同的构建:

  <package id="Newtonsoft.Json" version="6.0.3" targetFramework="net40" />
Run Code Online (Sandbox Code Playgroud)

和.net 4.5项目引用4.5版本:

  <package id="Newtonsoft.Json" version="6.0.3" targetFramework="net45" />
Run Code Online (Sandbox Code Playgroud)

然而,4.5项目引用了4.0项目,导致构建在TFS构建上失败(因为它构建了所有1个文件夹),并且当构建.NET 4.0项目之前,Newtonsoft.Json .NET 4.5构建在构建文件夹中结束时,导致面向.NET 4.0的项目失败.

有没有办法强制update-package选择targetFramework="net40"解决方案中的所有项目(即使项目的目标是.NET 4.5)(每次更新后都不必在文件中查找和替换)?

那么类似于你可以用install-package -version做什么?