维护一个老网站,用vs2022打开后build能成功,但是在IIS里运行的时候会报错:
Server Error in '/' Application.
Could not find a part of the path '...\bin\roslyn\csc.exe'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.IO.DirectoryNotFoundException: Could not find a part of the path '...\bin\roslyn\csc.exe'.
在build的时候尝试找到\bin\roslyn\csc.exe,因为项目添加了
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
Microsoft.Net.Compilers
这两个包,可以在packages.config里找到他们。
什么是Roslyn?谁在项目中添加了它们?
如果您使用 .net Framework 4.5.2 使用 VS2015 创建项目,您可能已经注意到项目模板默认使用 Roslyn。 实际上,Roslyn 是 Microsoft 的 .NET 语言的开源编译器之一。
如果你的项目有 Roslyn 引用并且您有兴趣将其部署在服务器上,你会在网站上收到不必要的错误,因为许多托管服务提供商仍未升级其服务器,因此不支持 Roslyn。 要解决此问题,需要从项目模板中删除 Roslyn 编译器。
所以我们不需要使用Roslyn,我们就可以删除它们。
在Package Manager Console里执行命令删除package:
PM> Uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
PM> Uninstall-package Microsoft.Net.Compilers
对于我的项目我只添加过第一个个包所以只需要执行第一条就可以了。删除包后网站可以正常运行了。

站心网
为您推荐

.NET 10 C# 14 必知的 6 大语法糖:提升开发效率,简洁优雅

2025年最佳.NET C#实现PDF转Word:主流库功能与对比

.NET Core 图像处理:Magick.NET 与 SkiaSharp 的全面对比

使用.NET C#将图片转换为.ico图标文件的多种方法


RabbitMQ 4.0+重大更新!.NET(C#)开发者必须掌握的6大升级要点

Paylinks:基于现代 .NET 的跨平台第三方支付 SDK 详解与使用示例

.NET 使用 Qdrant.Client 连接向量数据库 Qdrant 的完整指南

Entity Framework(EF) Core 10新特性全面解析:提升开发效率的关键更新

.NET(C#)使用 iText7 高效处理PDF文件的全面指南
.NET Exception: Received an unexpected EOF or 0 bytes from the transport stream.解决方法

微软退出中国对.NET开发人员有什么影响?

EasyCaching:一款灵活高效的 .NET 缓存库
.NET 依赖注入如何一个接口注册两种实现
.NET C# 过滤从富文本编辑器html里的Javascript脚本

ZLinq:.NET 高性能 LINQ 替代方案及其使用指南
