MSB3644 未找到框架“.NETFramework,Version=v4.7.2”的引用程序集 & 未找到导入的项目
主要记录在启动LSpy源码过程中碰到的2个报错
1.未找到框架“.NETFramework,Version=v4.7.2”的引用程序集
2.未找到导入的项目“d:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Sdks\MSBuild.Sdk.Extras\Sdk\Sdk.props”。请确认 <Import> 声明中的路径正确,且磁盘上存在该文件
可以忽略【解决过程】,直接关注【解决方案】
【现象】:下载ILSpy源码,用vs2017打开,部分工程文件报错,提示如下错误
【原因】:.NetFramework没有安装4.7.2版本
【解决方案】:
1.通过如下路径下载.NETFramework 4.7.2:
https://dotnet.microsoft.com/download/dotnet-framework
2.安装以后,可以通过新增项目查看支持的.Net FrameWork版本,如果没有新增的4.7.2,可以重启vs查看
【现象2】:未找到导入的项目“d:\XXX\Professional\MSBuild\Sdks\MSBuild.Sdk.Extras\Sdk\Sdk.props”。
依然有工程文件报警,提示如下
尝试重新加载项目以后弹窗报错:
未找到导入的项目“d:\XXX\Professional\MSBuild\Sdks\MSBuild.Sdk.Extras\Sdk\Sdk.props”。请确认 <Import> 声明中的路径正确,且磁盘上存在该文件
【解决过程】:
0.先尝试修复TestPlugin,发现这个报错可能是由于其他项目未生成导致的,先忽略,找到ILSpy
1. 打开ILSpy项目的工程文件,搜索Import关键字,发现如下一处。网上也有类似解决方案,说这里的Import指向的文件不对,但这里似乎跟其他引入项目没有关系
<Import Project="$(VCToolsVersionPropsFile)" Condition="Exists('$(VCToolsVersionPropsFile)')" />
2. 仔细查看提示:
未找到导入的项目“d:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Sdks\MSBuild.Sdk.Extras\Sdk\Sdk.props”。请确认 <Import> 声明中的路径正确,且磁盘上存在该文件
提到MSBuild.Sdk.Extras,在工程文件里面确实找到一处
3.以MSBuild.Sdk.Extras 作为关键字搜索
https://cloud.tencent.com/developer/article/1341175
发现 MSBuild.Sdk.Extras 是一个程序包,在github上找到 https://github.com/novotnyllc/MSBuildSdkExtras,进一步了解,需要Visual Studio 2017 Update 6 (aka v15.6)版本
【解决方案】:
升级VS版本,至少是vs2017 v15.6+
其他:
.NETFramework程序路径
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework