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

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

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

System.ArgumentException: '$(NETStandardImplicitPackageVersion)' is not a valid version string. at NuGet.Versioning.VersionRange.Parse(String value, Boolean allowFloating) at
NuGet.PackageManagement.VisualStudio.VsManagedLanguagesProjectSystemServices.ToPackageLibraryDependency(PackageReference reference) at System.Linq.Enumerable.WhereSelectEnumerableIterator2.MoveNext()<br/> at System.Collections.Generic.List1..ctor(IEnumerable1 collection)<br/> at System.Linq.Enumerable.ToList[TSource](IEnumerable1 source) at NuGet.PackageManagement.VisualStudio.VsManagedLanguagesProjectSystemServices.d__23.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
at NuGet.PackageManagement.VisualStudio.LegacyPackageReferenceProject.d__27.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at NuGet.PackageManagement.VisualStudio.LegacyPackageReferenceProject.d__14.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at NuGet.PackageManagement.DependencyGraphRestoreUtility.d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at NuGet.PackageManagement.DependencyGraphRestoreUtility.d__2.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
at NuGet.PackageManagement.NuGetPackageManager.d__75.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

最佳答案

不确定这是否与我遇到的问题相同,但对我来说,解决它的方法是确保我的 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。

关于c# - 使用旧解决方案将 nuget 包添加到 .net 核心项目时如何修复 $(NETStandardImplicitPackageVersion) 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48382954/

相关文章:

c# - 等待和不分配任务

c# - 在 C# 中检查空值对象的最佳语法是什么

c# - 在 .Net 4.5 中混合使用 Forms 和 Windows 身份验证

C# 相机对象跟踪

asp.net-core - 运行运行时包后 iis 模块中缺少 aspnetcoremoduleV2

c# - 防止回发 vb 和 javascript

c# - 视觉 C# "Could not load file or assembly or one of its dependencies"

azure - ASP.NET Core 中 Azure 上的 Phantom pdf

asp.net-core - 如何从 MVC Controller 使用 Azure Function

c# - 将变量初始化为其默认值的目的是什么?