gpt4 book ai didi

c# - 找不到 CodeDom 提供程序类型 "Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider"

转载 作者:IT王子 更新时间:2023-10-29 03:32:58 29 4
gpt4 key购买 nike

这是一个使用VS2015的WebApi项目。

重现步骤:

  1. 创建一个空的 WebApi 项目
  2. 将构建输出路径从“bin\”更改为“bin\Debug\”
  3. 运行

enter image description here

在我将构建输出路径从“bin\”更改为“bin\Debug\”之前,一切都运行良好事实上,除“bin\”之外的任何输出路径都不起作用。

一点额外的事情是,只要我在“bin\”中留下一个构建,就有另一个到任何地方的输出路径都可以工作。

请帮助提供解决方案来解决这个问题。我想这会在实际部署中产生成本问题。

最佳答案

如果您的项目有 Roslyn 引用,并且您将其部署在 IIS 服务器 上,您可能会在网站上遇到不需要的错误,因为许多托管服务提供商仍未升级他们的服务器,因此不支持 Roslyn。

要解决此问题,您需要从项目模板中删除 Roslyn 编译器。删除 Roslyn 不应影响代码的功能。它对我和我工作的其他一些项目 (C# 4.5.2) 运行良好。

执行以下步骤:

  1. 使用如下所示的命令行从以下 Nuget 包中删除(或者您可以通过右键单击 Root Project Solution 并删除它们来使用 Nuget 包管理器的 GUI)。

    PM> Uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
    PM> Uninstall-package Microsoft.Net.Compilers
  2. 从您的 Web.Config 文件中删除以下代码并重新启动 IIS。 (仅当第 1 步不能解决您的问题时才使用此方法。)

    <system.codedom>
    <compilers>
    <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
    <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
    </compilers>

关于c# - 找不到 CodeDom 提供程序类型 "Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33319675/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com