この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の下でアプリケーションを実行することで、バンドリングとミニファイを機能させることができません。
Web.Release.configで定義されているWeb.config変換は、関連する構成のプロジェクトを展開/公開するときにのみ行われます。
Visual Studioのアクティブな構成をReleaseに変更してアプリケーションを実行するだけでは、変換は実行されません。したがって、web.configは変更されません。この動作は、元のweb.configを含むプロジェクトディレクトリからWebアプリケーションが実行されるため、妥当です。 Visual Studioがweb.consignを変換すると、元のweb.configが変更されます。
まだデプロイメントプロファイルを作成していない場合は、アプリケーションをファイルシステムに公開して、動作を確認できます。配置を実行する構成として[リリース]を選択します。変換は期待どおりに実行する必要があります。
Global.asaxファイルで設定した.NETバンドルとミニファイをテストしたい場合は、プリコンパイル表記を使用することもできます...たとえば、
#if DEBUG
BundleTable.EnableOptimizations = false;
#else
BundleTable.EnableOptimizations = true;
#endif
これにより、アプリケーションはビルド操作で変換をトリガーする必要がなく、希望どおりに実行されます。
私の答えは遅いかもしれませんが、これは私とうまくいったものです:
私は行を変更しました:
<compilation xdt:Transform="RemoveAttributes(debug)" />
へ:
<compilation xdt:Transform="Replace" debug="false" targetFramework="4.5" />
オプティマイザがDebug値が存在し、== "false"であることを探していると思うので、これは基本的にトリックを実行しました。
これがコードからこれを管理したくない人を助けることを願っています。
おそらくOmar.Alaniの答えの改善:
Releaseトランスフォームで、次の行を置き換えます。
<compilation xdt:Transform="RemoveAttributes(debug)" />
次のように:
<compilation debug="false" xdt:Transform="SetAttributes" />
デバッグ属性の削除で十分です。RemoveAttributes(debug)。 debug = falseと同様に機能します。
compilation debug="false" xdt:Transform="SetAttributes"
azure環境のリリース時にXML変換をアクティブ化して、ターゲット環境に固有の構成変換を行う場合に便利です。
Azureのデプロイ時にXML変換を確認すると、次のシーケンスが実行されます。
ただし、web.release.config
はすでにweb.base.config
に適用されているため、
compilation xdt:Transform="RemoveAttributes(debug)"
はweb.release.config
ファイルで使用され、web.configはすでにコンパイル時にデバッグ属性が削除されており、デプロイ時にweb.release.config
を使用して再度変換すると、上記のコマンドを適用しようとして失敗します。