使用旧解决方案将nuget包添加到.net核心项目时如何解决$(NETStandardImplicitPackageVersion)错误?

时间:2018-01-22 13:40:26

标签: c# .net asp.net-core visual-studio-2017

我们现有的.NET解决方案包含很多项目。我最近在解决方案中添加了一个新的ASP.NET核心项目。当我尝试将Nuget包添加到解决方案时,添加失败,我在包管理器输出窗口中收到以下错误。如果我创建一个新的解决方案并将相同的项目添加到解决方案中,那么我就可以添加Nuget包,因此将新的.NET核心项目添加到现有解决方案似乎是一个问题。任何人都可以帮我解决这个问题吗?

  

System.ArgumentException:' $(NETStandardImplicitPackageVersion)'是   不是有效的版本字符串。在   NuGet.Versioning.VersionRange.Parse(String value,Boolean   允许浮动)在   NuGet.PackageManagement.VisualStudio.VsManagedLanguagesProjectSystemServices.ToPackageLibraryDependency(PackageReference   参考)at   System.Linq.Enumerable.WhereSelectEnumerableIterator 2.MoveNext()
at System.Collections.Generic.List
1..ctor(IEnumerable 1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable
1 source)at at   NuGet.PackageManagement.VisualStudio.VsManagedLanguagesProjectSystemServices.d__23.MoveNext()   ---从抛出异常的先前位置开始的堆栈跟踪结束--- at   System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)   System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(任务任务)
  在   NuGet.PackageManagement.VisualStudio.LegacyPackageReferenceProject.d__27.MoveNext()   ---从抛出异常的先前位置开始的堆栈跟踪结束--- at   System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)   NuGet.PackageManagement.VisualStudio.LegacyPackageReferenceProject.d__14.MoveNext()   ---从抛出异常的先前位置开始的堆栈跟踪结束--- at   System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)   NuGet.PackageManagement.DependencyGraphRestoreUtility.d__6.MoveNext()   ---从抛出异常的先前位置开始的堆栈跟踪结束--- at   System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)   NuGet.PackageManagement.DependencyGraphRestoreUtility.d__2.MoveNext()   ---从抛出异常的先前位置开始的堆栈跟踪结束--- at   System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)   System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(任务任务)
  在   NuGet.PackageManagement.NuGetPackageManager.d__75.MoveNext()   ---从抛出异常的先前位置开始的堆栈跟踪结束--- at   System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)

1 个答案:

答案 0 :(得分:2)

不确定这与我遇到的问题是否相同,但是对我来说,解决该问题的方法是确保sln文件中的GUID匹配。

例如:

Project("{PROJECT-GUID}") = "ProjectA", "ProjectA\ProjectA.csproj", "{GUID-PROJECT-A}"
EndProject
Project("{PROJECT-GUID}") = "ProjectB", "ProjectB\ProjectB.csproj", "{GUID-PROJECT-B}"
EndProject
Project("{SOME-OTHER-GUID}") = "ProjectC", "ProjectC\ProjectC.csproj", "{GUID-PROJECT-C}"
EndProject

我不得不用PROJECT-GUID替换SOME-OTHER-GUID。