Visual Studio 2013, держась за файл App_global.asax.PDB?
С момента обновления до Visual Studio 2013 (с 2012 года) я заметил, что при отладке моего приложения ASP.NET MVC 5 я иногда получаю сообщение об ошибке компилятора с помощью IIS Express:
Описание: Произошла ошибка во время компиляции ресурса требуется для обслуживания этого запроса. Ознакомьтесь со следующими конкретными детали ошибок и соответствующим образом изменить исходный код.
Сообщение об ошибке компилятора: CS0042: непредвиденная ошибка при создании отладки информационный файл 'c:\Users\Jeff\AppData\Local\Temp\Temporary ASP.NET Файлы \root\368a9040\83fb9039\App_global.asax.PDB '- 'c:\Users\Jeff\AppData\Local\Temp\Temporary ASP.NET Файлы \root\368a9040\83fb9039\App_global.asax.pdb: процесс не может доступ к файлу, потому что он используется другим процессом.
Ошибка источника:
[Нет соответствующих строк исходного кода]
Исходный файл: Линия: 0
Эта ошибка исчезает, если я открываю Process Explorer, а затем ищет дескриптор App_global.asax.pdb(этот файл имеет DevEnv.exe) и принудительно закрывает его, а затем обновляет страницу. Однако это неудобно, и я никогда не делал этого до 2013 года.
У кого-нибудь есть идея, почему это происходит с перерывами в 2013 году, но не раньше?
Единственная возможная вещь, о которой я мог подумать, - это некоторая непонятная проблема с шагом Razor Generator MSBuild, который я использую, но я не мог понять, почему это было бы App_Global.asax, а не представление (и даже тогда он не должен компилироваться для немодифицированного представления)
Ответы
Ответ 1
После обновления до VS2013 мы столкнулись с этой проблемой в большом веб-приложении, которое мы разрабатываем. Мы решили удалить атрибут optimizeCompilations = "true" из элемента компиляции в нашем файле Web.Config.
Я также пробовал VS2013 Update 1 и VS2013 Update 2 RC, и ни одна из них не разрешает эту проблему.
Ответ 2
Я не уверен, что наши проблемы идентичны, но я решил проблему для меня, отключив Edit и Continue.
Инструменты → Параметры → Отладка → Изменить и продолжить → Снимите флажок "Включить редактирование и продолжить".