c# - 找不到部分路径 ... bin\roslyn\csc.exe

标签 c# asp.net .net visual-studio roslyn

我正在尝试运行从 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'.

这是错误页面的完整屏幕截图。

enter image description here

经过几天的研究,我明白了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/

相关文章:

C# Excel 互操作 : how can I "get" a table that is already in a worksheet?

.NET 以下两行给出编译错误,为什么?

.net - 是否可以判断哪个应用程序创建了文件?

.net - 为什么 "dotnet test"在 ubuntu LTS 14.04 上失败?

c# - 绘制的矩形仅出现在我的 userControl 的最后一个实例上

c# - 使用 Epplus 的条件格式更改单元格颜色

c# - 通过 ASP.NET Membership.OpenAuth 获取用户个人资料信息

asp.net - 日历控件 : Have todays date selected on page load

sql - azure 上托管的 .net 应用程序停止工作并发生异常 [Win32Exception (0x80004005) : Access is denied] [SqlException (0x80131904):

asp.net - 失败 - 在 Chrome 中获取 Zip 文件时出现网络错误