Не удалось найти файл ... bin \ roslyn \ csc.exe - PullRequest
0 голосов
/ 29 сентября 2019

В Visual Studio 2017 при нажатии Ctrl + F5 для запуска моего сервера веб-API ASP.NET Framework я получаю:

Не удалосьнайти файл ... bin \ roslyn \ csc.exe:

Screenshot

Запуск Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r в консоли диспетчера пакетов не является постоянным исправлением в том смысле, чтоошибка сервера появляется снова, когда отсутствуют файлы пакета.Как я могу избавиться от этой ошибки раз и навсегда, чтобы необходимые пакеты автоматически (без вывода сообщений) автоматически переустанавливались, как только я снова открываю, собираю и запускаю свое решение 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)

1 Ответ

0 голосов
/ 29 сентября 2019

Я нашел способ.В том же каталоге, что и файл моего проекта (расширение .csproj), находится файл Web.config, содержащий XML-код.

Я открыл файл 'Web.config' в текстовом редакторе.- В теге configuration | system.codedom | compilers | compiler language="c#;cs;csharp" я полностью удалил атрибут type в приведенном ниже коде.

<?xml version="1.0" encoding="utf-8"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  https://go.microsoft.com/fwlink/?LinkId=301879
  -->
<configuration>
  <appSettings></appSettings>
  <system.web></system.web>
  <system.webServer></system.webServer>
  <runtime></runtime>
  <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=\&quot;Web\&quot; /optionInfer+"/>
    </compilers>
  </system.codedom>
</configuration>

Короче, удалите строку, начинающуюся с type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider,.

(Предположительно, такое же исправление работает как для Visual Basic, так и для Csharp, но я не пробовал.)

Server Error in '/' Application исчез.

В качестве провокации я даже попытался удалитьвесь каталог «package» моего решения Visual Studio.Он был автоматически и беззвучно воссоздан, как только я (заново) построил решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...