升级到Visual Studio 2017 15.5后,我的项目都不会正确加载。所有都标记为不可用。
我为每个项目收到以下错误:
错误:无效的静态方法调用语法:“[MSBuild] :: IsRunningFromVisualStudio()”。找不到方法'[MSBuild] :: IsRunningFromVisualStudio'。静态方法调用的格式应为:$([FullTypeName] :: Method()),例如: $([System.IO.Path] ::组合(
a
,b
))。 C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ 15.0 \ Bin \ Microsoft.Common.CurrentVersion.targets
添加新项目会产生此错误提示:
答案 0 :(得分:26)
1。关闭所有正在运行的Visual Studio 2017实例
2. 启动(以管理员身份)“VS 2017开发人员命令提示”
3. 键入以下命令(将Professional替换为您的版本,企业版或社区版,或相应地调整路径):
gacutil /i "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Build.Framework.dll"
gacutil /i "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Build.dll"
gacutil /i "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Build.Engine.dll"
gacutil /i "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Build.Conversion.Core.dll"
gacutil /i "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Build.Tasks.Core.dll"
gacutil /i "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Build.Utilities.Core.dll"
4. 重启Visual Studio 2017
答案 1 :(得分:0)
通过更新程序安装最新的Visual Studio版本后,我收到了相同的错误消息。
至少在我的情况下,通过在安装Visual Studio更新后重新启动,问题得到了解决。
答案 2 :(得分:0)
我在公司网络上的Windows 7 PC上遇到Visual Studio 2017的这个问题。我尝试通过以下方式解决问题:
我注意到在安装了VS2017的同事的计算机上,当我安装VS2017 Community Edition 15.5版时,没有问题。
此时,我不得不承认失败。唯一简单的解决方案是替换文件中的行:
文件末尾附近有一行:
<NuGetRestoreTargets Condition="'$(NuGetRestoreTargets)'=='' and '$([MSBuild]::IsRunningFromVisualStudio())'=='true'">$(MSBuildToolsPath32)\..\..\..\Common7\IDE\CommonExtensions\Microsoft\NuGet\NuGet.targets</NuGetRestoreTargets>
只需将$([MSBuild]::IsRunningFromVisualStudio())
替换为true
:
<NuGetRestoreTargets Condition="'$(NuGetRestoreTargets)'=='' and 'true'=='true'">$(MSBuildToolsPath32)\..\..\..\Common7\IDE\CommonExtensions\Microsoft\NuGet\NuGet.targets</NuGetRestoreTargets>
但这仅允许项目加载 - 您无法使用它来构建项目。
我将要求重新映像我的计算机,以便我可以从头开始下载和安装Visual Studio。
(我希望微软能尽快提出解决方案。)
答案 3 :(得分:0)
从对this issue on github的回复来看,它通常是由GAC中的旧版MSBuild引起的。然后将优先使用随VS的更新版本一起提供的捆绑版本。
解决方案是从gac中删除旧版本的Microsoft.Build。
找到gac的版本:
gacutil /l | findstr Microsoft.Build
查找版本15.x.x.x中的任何版本,然后将其删除:
gacutil /u "Microsoft.Build, Version=15.{version_found}"
重新启动Visual Studio
可能还需要删除该版本的相关程序集Microsoft.Build.Utilities.Core
,Microsoft.Build.Framework
和Microsoft.Build.Tasks.Core
。
答案 4 :(得分:0)
除了 Yuriy Oleynik's answer 中提到的程序集之外,我发现我需要在 gac(我使用的是 VS 2019)中添加一个额外的程序集(请参阅下面的最后一个命令):
gacutil.exe -i "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\amd64\Microsoft.Build.dll"
gacutil.exe -i "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\amd64\Microsoft.Build.Conversion.Core.dll"
gacutil.exe -i "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\amd64\Microsoft.Build.Engine.dll"
gacutil.exe -i "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\amd64\Microsoft.Build.Framework.dll"
gacutil.exe -i "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\amd64\Microsoft.Build.Tasks.Core.dll"
gacutil.exe -i "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\amd64\Microsoft.Build.Utilities.Core.dll"
gacutil.exe -i "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\amd64\System.Collections.Immutable.dll"
答案 5 :(得分:-2)
henkmollema在这个帖子中提供的解决方案:https://github.com/Microsoft/msbuild/issues/2775是从开始菜单启动visual studio安装程序并运行修复。