C# 在旧的csproj格式项目中,是否有方法将具有多个相互依存依赖项的nuget包更新为新版本?

C# 在旧的csproj格式项目中,是否有方法将具有多个相互依存依赖项的nuget包更新为新版本?,c#,visual-studio-2017,azure-devops,nuget,C#,Visual Studio 2017,Azure Devops,Nuget,我们有一个VisualStudio解决方案,该解决方案的格式为csproj项目,依赖于该项目,该项目在它所需要的其他(相互)依赖项中占有相当大的份额 问题是,即使在新的独立项目中,也不可能将依赖项(在VS2017中)更新到新版本。始终存在以下错误(无论我尝试了哪些选项): 而相同的独立格式项目没有此类问题 <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe<

我们有一个VisualStudio解决方案,该解决方案的格式为csproj项目,依赖于该项目,该项目在它所需要的其他(相互)依赖项中占有相当大的份额

问题是,即使在新的独立项目中,也不可能将依赖项(在VS2017中)更新到新版本。始终存在以下错误(无论我尝试了哪些选项):

而相同的独立格式项目没有此类问题

<Project Sdk="Microsoft.NET.Sdk">    
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net45</TargetFramework>
  </PropertyGroup>    
  <ItemGroup>
    <PackageReference Include="Microsoft.TeamFoundationServer.ExtendedClient" Version="15.112.1" />
  </ItemGroup>    
</Project>
因此,基本上有没有一种方法可以在旧格式项目中实现这一点,而不必求助于手动/半自动删除和重新安装带有依赖项的ExtendedClient(问题是,该解决方案包括许多可能依赖或可能不依赖TFS DLL的项目,所以我不能只为每个项目删除并安装它)

附言:无论如何,将所有内容移植到新格式都是一个好主意,但这不是我目前想做的事情

在旧的csproj格式项目中,是否有方法将具有多个相互依存依赖项的nuget包更新为新版本

很抱歉这么晚才回复,我不确定这个答案是否对你有帮助

我可以复制这个问题,但似乎我们必须卸载并重新安装版本
15.131.1

正如您所说,包Microsoft.TeamFoundationServer.ExtendedClient具有多个相互依赖的依赖项,如:

Microsoft.VisualStudio.Services.Client (= 15.112.1)

Microsoft.TeamFoundationServer.Client (= 15.112.1)
然而,依赖关系
Microsoft.TeamFoundationServer.Client
也有一个间接依赖关系
Microsoft.VisualStudio.Services.Client(=15.112.1)
。当我们更新包
Microsoft.TeamFoundationServer.ExtendedClient
时,nuget将首先更新包
Microsoft.VisualStudio.Services.Client(=15.112.1)
,但是包
Microsoft.TeamFoundationServer.Client(=15.112.1)
仍然引用它,将阻止我们更新包

反之亦然。这个包的多个相互依赖的依赖项形成了死锁,我们现在无法打破它,除非我们使用ignoredependencies选项升级每个依赖项

因此,我们必须卸载并重新安装版本
15.131.1

问题是,解决方案包括许多可能会 或者可能不依赖于TFS DLL,因此我不能仅为删除并安装它 每个项目

您可以使用选项管理解决方案的Nuget软件包…,并选中项目复选框,将选择安装该软件包的所有项目:

因此,您不需要逐个卸载和重新安装每个项目的软件包

希望这能有所帮助。

谢谢,我忘记了“for Solution”选项,不过我(大多数情况下,除非遇到一些难以解决的情况)通过PackageManagerConsole命令(
Get Project-All | Where…
)自动化了该过程。
Update-Package Microsoft.TeamFoundationServer.ExtendedClient -DependencyVersion Highest
Restoring packages for C:\Projects\TEST\TestTfsNugetUpdate\TestTfsNugetPackage_NewFormat\TestTfsNugetPackage_NewFormat.csproj...
Installing NuGet package Microsoft.TeamFoundationServer.ExtendedClient 15.131.1.
...
Successfully installed 'System.IdentityModel.Tokens.Jwt 5.1.5' to TestTfsNugetPackage_NewFormat
Executing nuget actions took 97.55 ms
Microsoft.VisualStudio.Services.Client (= 15.112.1)

Microsoft.TeamFoundationServer.Client (= 15.112.1)