Как установить debug false для режима выпуска
у меня есть эта сеть.конфигурационный файл с параметром компиляции, как показано ниже
Web.config
<configuration>
...
<system.web>
<compilation debug="true" targetFramework="4.5" />
...
</system.web>
</configuration>
и вот что Visual Studio ставит для режима выпуска по умолчанию.
Web.Освобождать.config
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
</system.web>
</configuration>
Я использую это для проекта MVC4. На основе в этом уроке, я ожидал, что будут обслуживаться мини-версии js и css, когда приложение запускается под релиз Режим. Но это, похоже, не работает, и не минифицированные версии js и css обслуживаются. С другой стороны, если я явно установил debug в false в web.config, тогда версии min обслуживаются правильно.
Кажется сборник проблема преобразования тегов при запуске приложения под Режим Выпуска, но я не понимаю, что не так с тем же в Интернете.Освобождать.конфиг.
короче говоря, я не могу получить связывание и minification работает, запустив приложение под Режим Выпуска.
5 ответов
Web.config преобразования, как они определены в Интернете.Освобождать.конфигурации выполняются только при развертывании/публикации проекта для соответствующей конфигурации.
просто изменение активной конфигурации в Visual Studio для выпуска и запуска приложения не запускает преобразования. Следовательно, паутина.конфигурация остается неизменной. Это поведение разумно, так как веб-приложение запускается из каталога проекта, содержащего исходный веб-файл.конфиг. Если Visual Studio преобразует интернет.consign, ваша оригинальная сеть.конфигурация будет изменена.
Если вы еще не создали профиль развертывания, вы можете опубликовать приложение в файловой системе для проверки поведения. Выберите Release в качестве конфигурации для запуска развертывания. Преобразования должны выполняться, как и ожидалось.
Если вы хотите протестировать пакет .NET и минимизацию, которые вы настроили в своем глобальном.файл asax, вы также можете использовать нотацию предварительной компиляции...например
#if DEBUG
BundleTable.EnableOptimizations = false;
#else
BundleTable.EnableOptimizations = true;
#endif
при этом вашему приложению не нужно будет запускать преобразование в операции сборки и будет работать так, как вы хотите.
мой ответ может быть поздно, однако это то, что работали со мной:
Я изменил строку :
<compilation xdt:Transform="RemoveAttributes(debug)" />
в :
<compilation xdt:Transform="Replace" debug="false" targetFramework="4.5" />
это в основном сделало трюк, так как я думаю, что оптимизатор ищет значение отладки, которое будет присутствовать и == "false".
надеюсь, это поможет людям, которые не хотят управлять этим из кода.
возможно, улучшение для Омара.Ответ Элани:
в преобразовании Release замените строку:
<compilation xdt:Transform="RemoveAttributes(debug)" />
следующим образом:
<compilation debug="false" xdt:Transform="SetAttributes" />
удаление атрибута отладки достаточно RemoveAttributes (debug). Он будет работать аналогично debug=false.