Я получаю ту же ошибку, что и в "ASP.global_asax не существует в пространстве имен ASP" , самый популярный ответ (также одобренный Microsoft) - установить Microsoft.CodeDom.Providers.DotNetCompilerPlatform
для используйте «провайдеров CodeDom для ASP.NET вместо базирующихся на Roslyn».
Шаги:
- Установить пакет
- Удалите содержимое
C:\USERNAME\AppData\Local\Temp\Temporary ASP.NET Files
и откройте решение.
- Без построения редактор создает файл с
return (((System.Web.HttpApplication)(Context.ApplicationInstance));
.
Мой Web.config
имеет:
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.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=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" />
</compilers>
</system.codedom>
- Отлично! Это то, что я хочу, потому что эта ошибка не появится.
- Я закрываю проект, снова удаляю содержимое временной папки. Затем создайте файл с
return (((ASP.global_asax)(Context.ApplicationInstance));
, что привело к ошибке, которую я пытался избежать изначально! На производстве мы всегда будем просто строить, так что это проблема.
Возможно ли, что мой процесс сборки каким-то образом возвращается к исходному компилятору? Как мне вообще начать отлаживать такую проблему?