すでに述べたようで/programming/32780315#34391473、クイックフィックスは、パッケージマネージャを使用することで、
Tools
> Nuget Package Manager
> Package Manager Console
、実行します
Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r
ただし、代替の解決策(パッケージが欠落している場合にパッケージを自動的かつサイレントに再作成する)は、プロジェクトのWeb.config
ファイルの属性を削除することです。
(Web.config
は.csproj
ファイルと同じディレクトリにあります。)
Web.config
テキストエディター(またはVisual Studio内)でファイルを開きます。
-タグでconfiguration
> system.codedom
> compilers
> compiler language="c#;cs;csharp"
、完全に削除type
属性を。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!-- ... -->
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:default /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.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+"/>
</compilers>
</system.codedom>
</configuration>
つまり、で始まる行を削除しtype="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft
ます。
(おそらく、同じ修正がVisual BasicとCsharpの両方で機能しますが、私は試していません。)
残りはVisual Studioが処理します。もうServer Error in '/' Application
。
上記のzipファイルで提供したサンプルコードでは、+をHTTP Error 403
押したときに表示されます。CtrlF5
http://localhost:64195
Webブラウザーでに置き換えてみてくださいhttp://localhost:64195/api/products
。
Web APIは次のように表示されます。
挑発としてpackage
、Visual Studioソリューションのディレクトリ全体を削除してみました。
それを(再)構築するとすぐに、自動的に静かに再作成されました。
最後になりましたが、ここにエラーを再現するコードがあります:http :
//schulze.000webhostapp.com/vs/SrvrErr-reproduce.zip(元はhttps://github.com/aspnet/AspNetDocs/tree/master/aspnetから
/ web-api / overview / advanced / calling-a-web-api-from-a-net-client / sample / server / ProductsApp)