我正在尝试运行从 TFS (Team Foundation Server) 源代码管理中检索到的 ASP.NET MVC(模型- View - Controller )项目。我已经添加了所有程序集引用,并且能够成功构建和编译,没有任何错误或警告。
但是我在浏览器中收到以下错误:
Could not find a part of the path 'C:\B8akWorkspace\B8akProject\B8akSolution\B8AK.Portal\bin\roslyn\csc.exe'.
这是错误页面的完整屏幕截图。
经过几天的研究,我明白了Roslyn是一个提供高级编译功能的 .NET 编译器平台。但是,我不明白为什么我的构建试图找到\bin\roslyn\csc.exe,因为我没有配置与 Roslyn 相关的任何内容。我也不打算在我的项目中使用 Roslyn。
最佳答案
TL;恢复
在程序包管理器控制台中运行:
Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r
更多信息
此问题与 Visual Studio 本身无关,因此建议添加构建步骤以复制文件的答案是一种解决方法。与将编译器二进制文件手动添加到项目相同。
Roslyn 编译器来自 NuGet 包,该包的某些版本中存在/曾经存在错误(我不知 Prop 体是哪些)。解决方案是将该软件包重新安装/升级到无错误版本。最初在我于 2015 年写回答案之前,我通过在特定版本安装以下软件包来修复它:
- Microsoft.Net.Compilers 1.1.1
- Microsoft.CodeDom.Providers.DotNetCompilerPlatform 1.0.1
然后我查看了 .csproj 并确保包的路径在标签 <ImportProject>
内是正确的(在我的例子中是 ..\..\packages\*.*)在顶部和 <Target>
中底部名称为“EnsureNuGetPackageBuildImports”。这是在 MVC 5 和 .NET Framework 4.5.2 上。
关于c# - 找不到部分路径 ... bin\roslyn\csc.exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32780315/