我已经完成了上述所有操作,但我的问题没有解决(尝试通过 VS 2017 打开项目),
之后我意识到问题出在我的 csproj 文件上。我的项目(mvc)
由VS 2015创建...所以我编辑我的csproj文件并替换
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
通过这个:
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
都是关于 DotNetCompilerPlatform 的版本。
(我理解这个问题的方式是我创建了新的 mvc 项目
VS 2017 并比较了两个 csproj 文件 - 新文件和 VS 2015 创建的文件 - )
https://stackoverflow.com/users/15667/xan 提供的其他相关信息(因为答案已锁定)
对我来说(VS2019 打开一个较旧的解决方案)它只影响解决方案中的一个项目。导入看起来像这样:
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
<Import Project="..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
工作项目只有
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
行,所以我删除了前 2 个,然后 intelisense / go to definition 等再次开始工作。
但是由于缺少 Roslyn csc 编译器,Web 项目现在无法运行。
最终,整体可行的解决方案是更新项目的Microsoft.CodeDom.Providers.DotNetCompilerPlatform 和Microsoft.Net.Compilers Nuget 包。