我正在尝试运行ASP。NET MVC(模型-视图-控制器)项目从TFS (Team Foundation Server)源代码控制检索。我已经添加了所有程序集引用,我能够成功地构建和编译,没有任何错误或警告。

但是我在浏览器中得到以下错误:

找不到路径的一部分 “C: \ B8akWorkspace \ B8akProject \ B8akSolution \ B8AK.Portal \ bin \ roslyn \ csc.exe”。

以下是错误页面的完整截图。

经过几天的研究,我了解到Roslyn是一个提供高级编译特性的. net编译器平台。但是,我不明白为什么我的构建试图找到\bin\roslyn\csc.exe,因为我没有配置任何与roslyn相关的东西。我也没打算让罗斯林参与我的项目。


当前回答

右键单击项目并选择Manage Nuget Packages 找到“Microsoft.CodeDom.Providers.DotNetCompilerPlatform” 简单地更新到旧版本或新版本(无所谓哪个),然后再次更新回原始版本。

这将重新安装包的所有依赖项和文件(如csc.exe)。

其他回答

我不得不改变WebAPI和MVC项目文件,不构建视图:

<MvcBuildViews>false</MvcBuildViews>

这解决了我的TFS 2015构建服务器错误与罗斯林。仍然不确定为什么csc.exe被复制到\bin\csc.exe,但发布进程正在寻找\bin\Roslyn\csc.exe…找不到导致这种差异的变换。

我尝试了多个顶级答案,直到下面的步骤起作用(ASP。NET项目,目标是。NET Framework 4.6.2, Visual Studio 2019,在一个具有疯狂限制性组策略的系统上,2021年3月)。

我需要:

以管理员身份运行VS 在包管理器控制台运行 更新- package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -v 2.0.1 清洁和重建解决方案

如果不以Admin身份运行VS,组策略会阻塞Update-Package需要运行的ps1脚本。

PS.在此工作之前,我尝试了许多其他答案(并在他们失败后运行git reset)。我不知道他们中是否有人最终促成了这一切。我试着:

https://stackoverflow.com/a/32780433/4658148 https://stackoverflow.com/a/34391473/4658148 https://stackoverflow.com/a/41484473/4658148 https://stackoverflow.com/a/62136000/4658148 https://stackoverflow.com/a/54341249/4658148 https://stackoverflow.com/a/51308385/4658148

要做到这一点,可以采用以下简单的方法:

在系统的任何地方创建一个类似类型的新项目。构建它并将roslyn文件夹复制到bin目录。

在尝试了所有没有雪茄的修复后,我在Visual Studios中更新了这个Nuget包:

Microsoft.CodeDom.Providers.DotNetCompilerPlatform

我的是从1.0.0到2.0.0供参考(错误不再显示)

将Microsoft.CodeDom.Providers.DotNetCompilerPlatform从1.0.0升级到1.0.1解决了这个问题。