問題タブ [web-config-transform]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-studio-2012 - 異なる環境の web.config 変換中にエラーが発生しました
アプリをさまざまな環境に展開しようとしていたのですが、次の方法に従い始めました: Visual Studio または Visual Web Developer を使用して ASP.NET Web アプリケーションをホスティング プロバイダーに展開する: Web.Config ファイルの変換 - 12 の 3
Preview Transformをクリックするまでは完璧でしたが、次のエラーが表示されました。
マイクロソフト ビジュアル スタジオ
ファイルまたはアセンブリ 'Microsoft.Web.XmlTransform, Version=1.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。
(変換Web.DebugQA.configを 1 つだけ作成し、もちろんデフォルトのものである debug と release を作成しました)
私のWeb.DebugQA.configは次のようになります。
しかし、私はこのプラグインをインストールします:
プレビュー変換エラーを解決しましたが、QADev 変換を使用して公開しようとしたときに、次のエラーが発生しました。
「ImportParametersFile」タスクが予期せず失敗しました。
System.IO.FileNotFoundException: ファイルまたはアセンブリ 'Microsoft.Web.XmlTransform, Version=1.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。ファイル名: 'Microsoft.Web.XmlTransform, Version=1.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
at Microsoft.Web.Publishing.Tasks.ImportParametersFile.Execute()
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build .BackEnd.ITaskExecutionHost.Execute()
at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__20.MoveNext()WRN: アセンブリ バインディングのログがオフになっています。
アセンブリ バインド エラーのログを有効にするには、レジストリ値[HKLM\Software\Microsoft\Fusion!EnableLog]
(DWORD) を 1に設定します。
注: アセンブリ バインド エラーのログに関連するパフォーマンスの低下があります。
この機能をオフにするには、レジストリ値を削除します[HKLM\Software\Microsoft\Fusion!EnableLog]
。
Visual Studio Pro 2012 を使用しています。
xpath - Web構成変換:存在しない場合は挿入
一致する要素がターゲットに存在しない場合にのみ、変換を適用したいと思います。http://webconfigtransformationtester.apphb.com/を使用してさまざまなxpath式を試していますが、これまでのところうまくいきません。
たとえば、ターゲットのweb.configが次のようになっている場合:
その場合、出力は次のようになります。
しかし、ターゲットが次のようになっている場合:
その場合、変換の結果は次のようになります。
つまり、名前付きの接続文字列を構成に追加したいのですが、管理者が自分の値を入力できるようにします。(存在しない場合はcs configセクションを追加する)のと同じくらい簡単だと思いましたxdt:Transform="Insert" xdt:Locator="XPath(count(/configuration/connectionStrings)=0)"
が、明らかにそうではありませんでした。
asp.net - Visual Studioで構成変換を使用して要素を強制的に置き換える方法は?
Visual Studio には、公開時に Web.config を変換する素晴らしい機能があることがわかっています。したがって、Web.Release.config で次のようなものを使用して、Web.config の元の値を置き換えることができます。
Web.config:
Web.Release.config:
変換設定にタイプミスがない限り、これで問題ありません。たとえば、変換構成に次の行があるとします。
次に、変換がキーを見つけられず、この警告を黙って出力するため、"SomeKey" 項目は置き換えられません。
問題は、メインのWeb.config でキーを変更し、Web.Release.config でキーを変更するのを忘れた場合など、一部の状況では、発行時に発行出力メッセージを読み取らない可能性が高いことです。警告を見逃すと、リリース値の代わりにデバッグ値がアプリケーションで使用されるため、災害につながる可能性があります。
したがって、問題は、Web.Release.config で変換を定義するときに、指定されたアイテムを置き換える必要があることを示す方法があり、キーが見つからない場合は警告ではなくエラーをスローし、基本的にエラー コードで公開を終了することです。 ?
.net - web.config 変換 - appSettings ノードは変換されません
複数の Web アプリケーション間で共有したい appSettings があります。したがって、ソリューションのルート レベルで、"Common ConfigSettings" フォルダーを作成しました。ここには、共有されるすべての一般的な appSettings があります。次に、さまざまな Web プロジェクトで、このファイルへのリンクを追加し、次のような共通設定を参照します。
これは、デバッグ中にうまく機能しています。公開する必要がある場合、「リンクされた」ファイルは関連する Web プロジェクトのディレクトリにコピーされるため、プロジェクト web.config と同じディレクトリを指すようにファイル パスを変更する必要があります。しかし、私は変換を機能させることができません。
web.Config の appSettings の「ファイル」属性を変換しようとしています。しかし、idは機能していないようです。
元の web.config
変身
次に、プレビュー変換をクリックすると
asp.net-mvc - 変換ファイルがデプロイされないようにする
私は、web 変換ファイルを使用して web.config およびその他の構成ファイルを変換する asp.net mvc Web アプリケーションを使用しています。これは非常にうまく機能します。
私が改善したいのは、アプリが環境に展開されると、すべての変換ファイルも展開されることです。qa、開発、生産など。
Web 変換では、これを簡単に停止して展開されないようにする方法はありますか?
visual-studio-2012 - このノードを変換するための正しい xdt:Locator パラメータは何ですか?
私のapp.configファイルには次のものがあります。私はSlow Cheetahを使用しています.replace configuration/entityFramework/defaultConnectionFactory/parameters/parameterを置き換えて、差分サーバーを指すようにしたいだけです。つまり、value-data source=some-server....
app.config.release で次のことを試みましたが、役に立ちませんでした。
も試しxdt:Locator="Match(parameter)"
てみましたxdt:Locator="XPath(parameter)
他にもたくさんありますが、それを機能させることはできません。
msbuild - MSBuild - デプロイ時に "AfterBuild" ターゲットを強制する方法は?
次のセットアップがあります: ASP.Net MVC .Net 4.0 ソリューションに 5 つのプロジェクトがあり、いくつかのソリューション構成 ( Site1-Stage、Site1-Live、Site2-Stageなど)。その理由は単純です。同じコードベースを、異なる構成設定で複数のサーバーにデプロイします。
これらの構成を管理するために、Troy Hunt がYou're deploy it wrong!で説明したアプローチを使用します。TeamCity、Subversion & Web Deploy パート 1: 構成変換の記事。つまり、SVN リポジトリにweb.configがありません。代わりに、プロジェクトAfterBuildターゲットにWeb.Base.Config、Web.Site1-Stage.ConfigなどとXmlTransformationタスクがあります。ビルド中に、選択した構成に基づいて必要なweb.configが生成されます。
ここで問題が発生します: MSBuild を次のように実行すると:
すべてがうまくいき、web.config がSite1-Stage構成用に適切に生成されます。ただし、このコマンドを実行すると:
次のエラーが表示されます。
"MySolution.sln" (リビルド ターゲット) (1) -> "MySolution\MyWebProj.csproj" (リビルド ターゲット) (3) -> (PreTransformWebConfig ターゲット) -> C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio \v10.5\Web\Microsoft.Web.Publishing.targets(1399,5): エラー: ファイル Web.config を obj\Site1-Stage\TransformWebConfig\original\Web.config にコピーできませんでした。ファイル 'Web.config' が見つかりませんでした。[MySolution\MyWebProj.csproj]
「AfterBuild」ターゲットを MSBuild コマンド ラインに明示的に追加しようとしました。
しかし、同じエラーが発生しました。
これが必要な理由:これは非常に孤立した例であり、実際には、TeamCity CI サーバーから自動公開をセットアップしようとしています。現在の公開ステップの前に「Visual Studio (sln)」ランナーを使用して新しいビルド ステップを追加すると、最初にプロジェクトが再構築され (そして web.config が生成され)、公開されると思います。ただし、公開手順がたくさんあり (現在は約 20)、それは避けたいと思います。私の理解では、「発行」プロセスはその一部としてビルドを行うので、それを「再利用」したいと思います。
質問: MSBuild コマンド ラインを変更して、構成変換を強制的に実行するにはどうすればよいですか?
ありがとうございました。
asp.net - web.config 変換を使用して、上部に正規の URL ルールをどのように挿入しますか?
ASP.Net プロジェクト内で、リリース ビルドの Web.Config (Web.Release.Config 変換ファイルを使用) に対して、書き換えセクションに正規の URL ルールをどのように挿入しますか?
appharbor - AppHarbor カスタム構成ファイルの変換
saml情報を含むxmlファイルsaml.configがあります。この情報は、リリース ビルドで変換して、開発およびステージング URL の代わりに運用 URL を含める必要があります。私の開発環境とステージング環境では、変換は完全に行われますが、リリース環境では変換は行われません。
http://webconfigtransformationtester.apphb.com/を試して変換をテストしましたが、適用されていませんが、VS はそれらを完全に適用します。
基本 saml.config ファイル:
変換ファイル:
結果は、サービス プロバイダーの AssertionConsumerServiceUrl の localhost url を ************.com バージョンに置き換える必要がありますが、そうではありません。
変換テスターが変換を適用しないのはなぜですか?
編集:
ローカルおよびステージング環境で変換を処理するために、SlowCheetah アドイン / nuget パッケージを使用していることを付け加えておきます。
ドキュメント(http://support.appharbor.com/kb/getting-started/managing-environments)の状態を考慮する
構成ファイルの変換は、対応する .release.config ファイルを持つすべての .config ファイルでサポートされています。
AppHarbor は、SlowCheetah がなくてもこれを実行できると思います。ただし、WebConfigTransformTester ツールはこの変換を適用しません。
問題は、この変換をどのように適用できるかということです。AppHarbor で SlowCheetah を使用できますか?
編集:
さらに調査すると、AppHarbor は変換を Web.Config にも適用していないようです。
私の設定:
Web.Config の AppSettings
環境が「開発」に設定されていることに注意してください
リリースの変換:
環境が「リリース」に置き換えられていることに注意してください
AppHarbor 環境:
AppHarbor にデプロイした後、ビルドをダウンロードして Web.Config を確認しましたが、「開発」の環境設定がまだ残っています。
編集:
Environment AppSetting を読み取ってビューに出力するコントローラーの 1 つにアクションを追加しましたが、驚いたことにそれは「リリース」でした!!!
それで、何が得られますか?「Download Build」コンテンツには変換が行われていませんが、リクエストが発生すると変換されますか? AppHarbor はいつ変換を適用しますか? ビルド時ではなく実行時ですか?
編集:
AppHarbor 関係者からの回答によると、変換は実際の発行時に行われるため、ビルドに「発行済み Web サイト」フォルダーがあっても、それは発行アクションの最終出力ではありません。
ありがとう、ジョー