工具版本"15.0"未被识别 - Visual Studio 2019 (v16.0.0预览5.0) 中的不兼容/未加载项目

9

更新

  • 修复了.NET Core 2.1安装版本2.2的问题
  • 卸载了VS 2019并重新安装
  • 在另一台安装有VS 2017和VS 2019的机器上可以使用(版本相同)

更新

我已经遇到这个问题有一段时间了,我真的想要使用2019版本的VS。

打开一个在Azure DevOps上工作且在所有之前的版本(2015-2017)中都能正常运行的VS C# MVC项目在2019中不起作用。

我首先遇到的错误是:

.csproj : error : 无法识别工具版本“15.0”。可用的工具版本为“14.0”、“2.0”、“3.5”、“4.0”。

所以我一个一个地将15.0更改为建议的版本,并尝试重新加载项目,但是没有解决错误,事实上我还遇到了另一个错误,如下所示:

.csproj : error : 未安装该项目的应用程序

对于这里我不知道该怎么办或者需要做什么。

有人可以给我提供任何建议、信息等吗?


1
尝试安装/更新https://www.nuget.org/packages/Microsoft.Build/。 - Mrg Gek
它需要哪个.NET框架版本,因为我的目标是4.6.1,但我收到以下错误:“无法安装包'Microsoft.Build 16.0.461'。您正在尝试将此软件包安装到一个针对'.NETFramework,Version=v4.6.1'的项目中,但该软件包不包含与该框架兼容的任何程序集引用或内容文件。” - Dimitri
我安装的不是最新版本,而是它之前的一个版本(15.xxxx),但在构建、关闭解决方案并重新打开后,我仍然遇到了相同的错误。 - Dimitri
1
你是否已经安装了 .NET Core 2.1? - Mrg Gek
1
类似于这个问题的东西? - LoLance
谢谢提供的链接,非常有用。我已经查看了一些链接和答案,但是设置环境变量路径并没有起作用。我尝试为VS 2017 MSBuild的位置和VS 2019设置它。我还尝试在MSBuild配置中添加<property name="ExtendedTargetsPath" value="$([MSBuild]::GetCurrentToolsDirectory())" />...我很震惊...我的另一台机器具有相同的设置,但没有任何ENV.变量。我注意到在注册表中没有15版本,只有14和4。这可能与此有关吗? - Dimitri
5个回答

17

我曾遇到类似的问题,而在微软文档中找到了一篇相关文章:

https://learn.microsoft.com/en-us/visualstudio/msbuild/updating-an-existing-application?view=vs-2017

这让我找到了答案。

如果您曾经安装过2017年之前的任何旧版本的Visual Studio,则会在恶意gac上安装一些不需要的dll。 您应该使用以下步骤将其删除:

  1. 在poweshell上运行:gacutil.exe -l | Select-String -Pattern 'Build' | Select-String -Pattern 'Version=15'

  2. 删除所有找到的条目。例如:

    gacutil.exe /u "Microsoft.Build.Framework, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"

这将确保vs使用其当前版本来加载项目。 请注意,VS 2019将始终使用“Current”,并且除非您强制执行,否则将忽略ToolsVersion:

https://learn.microsoft.com/en-us/visualstudio/msbuild/overriding-toolsversion-settings?view=vs-2019


1
我之前使用过这个解决方案 https://developercommunity.visualstudio.com/content/problem/411464/visual-studio-2017-tools-version-150-is-unrecogniz.html 但是在一次较小的 Visual Studio 更新后,该方案停止工作了,其中的类不再被识别,也无法导航到任何位置。我移除了系统路径并应用了这个解决方案,现在它又可以正常工作了。非常感谢。 - RonnyR
谢谢!这个答案解决了我在VS2019中花费了3个小时,始终无法基本运作的问题。 - jsmars
由于在VS 2017中执行此操作并不明显(在VS 2017中没有PowerShell提示符),因此根据https://intellitect.com/enter-vsdevshell-powershell/安装https://github.com/Pscx/Pscx cmdlet(如果提示允许clobber),这将在运行Invoke-BatchFile“C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\Tools\VsDevCmd.bat”后授予您访问gacutil.exe的权限。我没有编辑答案,因为OP的问题涵盖了2019,而我对2017感兴趣,希望这可以帮助某些人。 - smaudet

9
“OK FIXED THIS ...”
“我的 Visual Studio 2017 MSBuild 位置:”
C:\Program Files (x86)\Microsoft Visual Studio\Enterprise\MSBuild\15.0\Bin

我的 Visual Studio 2019 MSBuild 位置:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\15.0\Bin

我注意到我的 Visual Studio 2019 Bin 文件夹不完整,所以我进行了备份(当然),并将完整的 Bin 文件夹从2017复制到2019。
这修复了一切... 不知道还有什么要说的,只是希望可以帮助任何人!

我当时没有使用 .net core。 - Dimitri
请尝试创建一个项目,看看是否会出现与我相同的问题,因为我按照相同的步骤进行操作,结果导致我的VS2019和.NET Core 3.0出现了故障。 - Dandré
我现在使用另一个Windows安装程序,没有遇到任何问题,所以我无法再做这件事了。现在一切都正常工作。你遇到了什么问题或故障? - Dimitri
谢谢,但不用太担心。我只是想知道你是否像我一样在使用.NET Core 3.0时遇到了问题,因为我按照你在这个答案中提供的步骤进行了操作。与此同时,我已经向微软报告了这个问题。我什么也做不了。无法创建项目,甚至无法打开现有项目。VS2017运行得非常完美。 - Dandré
我知道那种感觉,再卡住也没有更多了!随意在这里留下你的发现,我相信它会帮助到某些人! - Dimitri
3
我最终得到了一个适合我的答案。https://developercommunity.visualstudio.com/content/problem/799309/installing-vs2019-with-existing-vs2017-wont-allow.html?childToView=801429#comment-801429。上面的答案没有解决全局程序集缓存(GAC)中二进制文件是主要问题的根源。 - Dandré

3
我尝试升级到VS2019时遇到完全相同的问题。但是,我读到的是MSBuild版本应该对应于Visual Studio版本。因此,VS2017=MSBuild 15.x,VS2019=MSBuild 16.x。
当我安装了VS2019和MSBuild 16.x之后,在我的GAC中从未看到过16.x的构建版本。对于VS2017和VS2019的安装,构建版本始终为15.0。
到目前为止,我不得不返回到我的VS2015版本,它可以按预期运行所有项目。不确定该怎么办,因为在没有支付$500.00的情况下无法获得Microsoft技术支持的任何帮助。

0
在我的系统中,我安装了VS 2017、2019和2022以及.Net Core 6。不确定是什么原因导致在VS 2017中开发的一个解决方案突然构建失败,并且所有项目都无法在任何VS中加载。错误与MS build路径有关。
以下解决方案有助于解决此问题。 打开Visual Studio 2019的开发人员命令提示符并执行以下命令:
SETX MSBUILD_EXE_PATH "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\MSBuild.exe"

我们可以在上述命令中使用分号将多个 MS Build 路径添加到多个 Visual Studio 中。


目前你的回答不够清晰,请编辑并添加更多细节,以帮助其他人理解它如何回答问题。你可以在帮助中心找到有关如何撰写好答案的更多信息。 - Jeremy Caney

0

从MSVS2017升级到MSVS2019,然后打开MSVS2017项目可能会出现错误“未安装项目应用程序”

尝试以下方法来修复错误:

  1. 关闭MSVS2019
  2. 打开资源管理器> [项目文件夹] /.vs/[项目名称]
  3. 删除v15子文件夹
  4. 打开MSVS2019> 项目(现在应该可以打开)
  5. 右键单击“解决方案资源管理器”>项目
  6. 选择重新定位项目

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接