web-dev-qa-db-ja.com

リリースモードのデバッグをfalseに設定する方法

このweb.configファイルにコンパイルオプションを以下のように設定しました

Web.config

<configuration>
...
<system.web>
    <compilation debug="true" targetFramework="4.5" />
    ...
</system.web>
</configuration>

そして、これはVisual Studioがデフォルトでリリースモードに置くものです。

Web.Release.config

<configuration xmlns:xdt="http://schemas.Microsoft.com/XML-Document-Transform">
 <system.web>
    <compilation xdt:Transform="RemoveAttributes(debug)" />
 </system.web>
</configuration>

これをMVC4プロジェクトで使用しています。 このチュートリアル に基づいて、アプリケーションがRelease Modeで実行されている場合、jsおよびcssの縮小バージョンが提供されることを期待していました。しかし、これは機能していないようで、jsとcssの非縮小バージョンが提供されています。一方、web.configでdebugを明示的にfalseに設定すると、最小バージョンが正しく提供されます。

compilationタグのように見えますアプリケーションがRelease Modeで実行されているときの変換の問題ですが、何が問題なのか理解できませんWeb.Release.configでも同じです。

要するに、Release Modeの下でアプリケーションを実行することで、バンドリングとミニファイを機能させることができません。

26
Jatin

Web.Release.configで定義されているWeb.config変換は、関連する構成のプロジェクトを展開/公開するときにのみ行われます。

Visual Studioのアクティブな構成をReleaseに変更してアプリケーションを実行するだけでは、変換は実行されません。したがって、web.configは変更されません。この動作は、元のweb.configを含むプロジェクトディレクトリからWebアプリケーションが実行されるため、妥当です。 Visual Studioがweb.consignを変換すると、元のweb.configが変更されます。

まだデプロイメントプロファイルを作成していない場合は、アプリケーションをファイルシステムに公開して、動作を確認できます。配置を実行する構成として[リリース]を選択します。変換は期待どおりに実行する必要があります。

17
Markus

Global.asaxファイルで設定した.NETバンドルとミニファイをテストしたい場合は、プリコンパイル表記を使用することもできます...たとえば、

#if DEBUG
  BundleTable.EnableOptimizations = false;
#else
  BundleTable.EnableOptimizations = true;
#endif

これにより、アプリケーションはビルド操作で変換をトリガーする必要がなく、希望どおりに実行されます。

15
beauXjames

私の答えは遅いかもしれませんが、これは私とうまくいったものです:

私は行を変更しました:

<compilation xdt:Transform="RemoveAttributes(debug)" />

へ:

<compilation xdt:Transform="Replace" debug="false" targetFramework="4.5" />

オプティマイザがDebug値が存在し、== "false"であることを探していると思うので、これは基本的にトリックを実行しました。

これがコードからこれを管理したくない人を助けることを願っています。

15
Omar.Alani

おそらくOmar.Alaniの答えの改善:

Releaseトランスフォームで、次の行を置き換えます。

<compilation xdt:Transform="RemoveAttributes(debug)" />

次のように:

<compilation debug="false" xdt:Transform="SetAttributes" />
8
davrob01

デバッグ属性の削除で十分です。RemoveAttributes(debug)。 debug = falseと同様に機能します。

0
user2211290
compilation debug="false" xdt:Transform="SetAttributes"

azure環境のリリース時にXML変換をアクティブ化して、ターゲット環境に固有の構成変換を行う場合に便利です。

Azureのデプロイ時にXML変換を確認すると、次のシーケンスが実行されます。

  • Web.configにweb.release.configを適用する
  • 変更されたweb.configにweb.stageName.configを適用します。

ただし、web.release.configはすでにweb.base.configに適用されているため、

compilation xdt:Transform="RemoveAttributes(debug)" 

web.release.configファイルで使用され、web.configはすでにコンパイル時にデバッグ属性が削除されており、デプロイ時にweb.release.configを使用して再度変換すると、上記のコマンドを適用しようとして失敗します。

0
Nicolas Cocu