Visual Studio 无法将.NET解决方案中的数据库项目更新到.NET 6

r7s23pms  于 2023-03-31  发布在  .NET
关注(0)|答案(1)|浏览(198)

我有一个应用程序,一个包含多个项目的解决方案,包括一个数据库项目。该应用程序是在.NET 4.5 Core中构建的。其中的所有C#代码项目后来都迁移到了.NET 6。我已经能够构建和部署它,并且它在服务器上正确运行。我在Windows 10上使用Visual Studio 2022。
我刚换了一台新的开发笔记本电脑。我第一次在上面加载Visual Studio中的解决方案时,出现了这样的情况:

在升级到.NET 6时,我运行了一个全局替换来更新所有.csproj文件中的版本,但我没有想到从数据库项目中查看.sqlproj文件。事实上,它仍然显示4.5:我想知道的是为什么对话框没有给予我一个更新到6.0的选项。
我选择了4.8选项。.sqlproj文件中的TargetFrameworkVersion更改为4.7.2(而不是4.8)。此外,在同一PropertyGroup中添加了一个新的空元素:<TargetFrameworkProfile />。我必须重新加载数据库项目,在解决方案资源管理器中,该项目后面的括号中注解了单词“unloaded”。然后构建了解决方案。
然而,它仍然不是.NET 6。我想如果我只是将其更改为v6.0,我会看到发生了什么。发生的事情是,该项目再次从解决方案中卸载。我重新加载了它。出现了一个对话框,与前一个类似,除了这次的第二个选项是“下载.NET Framework 6.0目标包(在浏览器中打开)”。第一个选项仍然是标记为“推荐”的选项。
我选择了6.0选项。在我的默认浏览器(Chrome)中,加载了URL https://www.bing.com/?ref=go&linkid=prd=12485&pver=12&sbp=TargetPackMissing&os=0&over=&plcid=0x409&olcid=0&clcid=&ar=&sar=&o1=.NETFramework,Version=v6.0&o2=&o3=&o4=&o5=。出现的是Bing主页!哈?
回到Visual Studio,我注意到项目仍然标记为“(未加载)”。
这么多问题:

  • 既然在我的旧笔记本电脑上从来没有出现过这个问题,为什么Visual Studio决定在新笔记本电脑上使用这个应用程序?
  • 什么是“目标包”?我有.NET 6;这是SQL数据库项目所需之外的东西吗?
  • 为什么它指的是.NET Framework 6,而没有.NET Framework 6这样的东西?
  • 为什么4.8是“首选”,而我的应用程序是在6?它是真的首选还是这是一个错误?
  • 如果它声称要升级到4.8,为什么项目文件后来说目标框架是4.7.2?
  • 为什么它把我送到必应主页?它应该把我送到哪里?
  • 我如何解决这个问题并在正确的.NET版本上获得数据库项目?

更新:为怀疑第二个选项内容的人添加第二个对话框的屏幕截图。

2izufjch

2izufjch1#

既然在我的旧笔记本电脑上从来没有出现过这个问题,为什么Visual Studio决定在新笔记本电脑上使用这个应用程序?
这是一台新的笔记本电脑。也许你没有安装相同版本的.NET。也许它安装了不同版本的Visual Studio。
什么是“目标包”?我有.NET 6;这是SQL数据库项目所需之外的东西吗?
它是一个用于在计算机上安装.Net版本的软件包。
为什么它指的是.NET Framework 6,而没有.NET Framework 6这样的东西?
我怀疑它是这样做的。你可能对你所看到的感到困惑。
为什么4.8是“首选”,而我的应用程序是在6?它是真的首选还是这是一个错误?
4.8比4.5更好,因为4.5不支持,而4.8不支持。
如果它声称要升级到4.8,为什么项目文件后来说目标框架是4.7.2?
这很奇怪,但如果你已经成功地从4.5升级到4.7.2,那么就称之为胜利。
为什么它把我送到必应主页?它应该把我送到哪里?
你提供的链接是必应的链接。用它来搜索东西(比如“如何安装.Net4.8”)
我如何解决这个问题并在正确的.NET版本上获得数据库项目?
没有正确的.NET版本(只有更好或更差的选择,根据您的特定情况-通常不支持的版本是不理想的)。
总的来说,您的问题似乎表明您没有意识到.Net Framework.Net Core之间的主要区别.Net Framework 4.5不受支持,因此建议升级到4.8(这是明智的)。直接从4.5升级到.Net 6是不明智的-您应该首先分析项目的兼容性,并遵循MS建议从.NET Framework迁移到.NET Core(有用的中间步骤是首先从.NET Framework迁移到.NET标准)。
无论你做什么,你都应该确保你已经为你正在使用的版本安装了.net开发包。如果可能的话,我会试着让它在当前版本上工作-你正在一台新的笔记本电脑上开始你的项目,所以首先,在你开始各种升级活动之前,试着让它构建和运行。但在这种情况下,你可能会遇到问题,因为4.5不支持,我不认为你现在可以很容易地找到它。你可能会成功地升级到4.7.2(确保你已经安装了4.7.2在您的pc上)。
有用链接:
porting from .net framework to .net core
upgrade-assistant-overview

相关问题