問題タブ [msbuild-propertygroup]

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.

0 投票する
4 に答える
4528 参照

msbuild - Msbuildは、宛先パラメーターのリストに基づいていくつかの場所にコピーしますか?

いくつかの場所にコピーしたいディレクトリを取得しました。

私が持っていると言う

  • home.aspx

コピーしたい

  • abc / home.aspx
  • def / home.aspx
  • ghi / home.aspx

だから私にとって2つの質問:

  • リストabc、def、ghiを定義するにはどうすればよいですか?
  • このリストの各要素を使用してコピータスクを実行するにはどうすればよいですか?
0 投票する
3 に答える
9239 参照

msbuild - ある MsBuild タスクから別の MsBuild タスクにプロパティ グループ値を渡す

1 つのビルド ターゲットで定義された値を他のターゲットで有効にするにはどうすればよいですか? PropertyGroup が、ここで使用する必要がある書き込み MsBuild エンティティではない場合、何ですか? ReleaseDir は「Package」ターゲットでは正常に出力されますが、「DoPackage」では空です

0 投票する
3 に答える
4415 参照

msbuild - MSBuild:セミコロンで区切られたプロパティの解析を制御する方法

単一のプロパティにセミコロンが含まれている場合、MSBuildは、アイテムグループ内で使用されると、プロパティをプロパティのリストに自動的に解析します。これが私のプロジェクトの抜粋です。

タスクが@(InstallShieldProperties)アイテムグループを消費すると、MSBuildは、セミコロンが含まれているため、ConnectionStringプロパティをサブセットプロパティのリストに解析します。

アイテムグループの区切り文字を変更できることはわかっていますが、違いはありません。カスタムタスク内でstring[]配列を操作しないようにしています。

0 投票する
2 に答える
1786 参照

msbuild - MSBuild:アスタリスクと奇妙なItemGroupは動作を除外します

ItemGroup特定の名前のファイルを除外しながら(拡張子に関係なく)、特定のディレクトリ内のすべてのファイルから構築しようとするスクリプトがあります。

除外するファイルのリストには、最初はファイル拡張子が含まれています。私はCommunity Tasksを使用RegexReplaceして、拡張子をアスタリスクに置き換えています。次に、このリストをアイテムのExclude属性で使用します。リストが正しいように見えても、何らかの理由でファイルが適切に除外されません。

原因を見つけるために、2つのタスクを持つテストスクリプト(以下)を作成しました。最初のスクリプトは、2つの異なる方法でファイルパターンのリストを使用して2つのプロパティを初期化します。2番目のタスクは、属性でこれらのプロパティの両方を使用した結果のプロパティとファイルの両方を出力しExcludeます。

プロパティの値は同じように見えますが、結果のグループは異なります。これはどのように可能ですか?

出力(わかりやすくするために多少再フォーマット):

両方ExcludeFilesAを観察し、ExcludeFilesB同じように見えますが、結果のグループはRemainingFilesA異なりRemainingFilesBます。

RemainingFilesA最終的には、同じ方法で生成されたパターンを使用してリストを取得したいと思いExcludeFilesBます。方法を提案できますか、それとも私のアプローチを完全に再考する必要がありますか?

0 投票する
2 に答える
6357 参照

msbuild - MSBuild:グローバルプロパティを作成する方法は?

MSBuildを実行すると、を使用してコマンドラインで渡されたものはすべて、メインスクリプトから(タスク/p:MyProp=valueを介して)呼び出されたすべてのMSBuildスクリプトからアクセスできます。MSBuildタスク内のすべてのスクリプトから同様にアクセスできるプロパティを定義するにはどうすればよいですか?

例えば:

このように実行するとmsbuild Script1.proj /p:GlobalProp1=VALUE1、上記のスクリプトは次の出力を生成します。

Script2.projでGlobalProp2を設定して、次の出力を生成したいと思います。

これは可能ですか?もしそうなら、どのように?

環境変数を使用する提案を見てきましたが、それが役立つ唯一の状況は、変数がスクリプトに設定され、スクリプトがExecタスクを使用して呼び出された場合です(そうでない場合、env.variableの変更は無効)。

0 投票する
1 に答える
3517 参照

msbuild - MSBuild で PropertyGroup の子としてカスタム プロパティを追加する方法は?

MSBuild で実行する次のビルド スクリプトがあります。

コマンドラインでスクリプトを開始すると:

コマンドライン出力で次のエラーが発生しました。

これは基本的に次のことを意味します:要素<#text>は不明な子です。

誰かアイデアがありますか?

編集:申し訳ありませんが、スクリプトを完了しました

0 投票する
1 に答える
133 参照

msbuild - あるプロパティ値を別のプロパティ値の中で使用する可能性はありますか?

私はこのようなことをしたいと思います:

あるプロパティ値を別のプロパティ値として渡します。これを行う方法はありますか?どのように?

0 投票する
4 に答える
1592 参照

msbuild - MSBuildで現在のOSの「ビット」を確認する

実行可能ファイルへのパスをハードコーディングする必要があるビルドスクリプトがあります。パスは次のとおりです。

  • C:\ Program Files \ Microsoft Visual Studio 9.0 \ SmartDevices \ SDK \ SDKTools \ cabwiz.exe

これは正常に機能しましたが、現在は64ビットOSで実行しています(ただし、同僚とビルドサーバーは32ビットのままです)。

私はこれになるためのパスが必要です:

  • C:\ Program Files (x86) \ Microsoft Visual Studio 9.0 \ SmartDevices \ SDK \ SDKTools \ cabwiz.exe

ただし、他のパスには通常のパスを使用してください。

これが私がそれを設定する方法です:

OS(現在のビルド構成ではない)が64ビットの場合に設定できるように設定できる条件はありますか?

0 投票する
3 に答える
747 参照

msbuild - MsBuild内のアイテムの評価の範囲と順序

次のコードで、MsBuildがサフィックスメタデータの設定を拒否するのはなぜだろうか。ItemGroup宣言の代わりにCreateItemタスクで動作します(CreateItemはビルド時に計算されるため)が、このコードは「プロパティファイル」にあるため、ここでは実行できません。プロジェクトにはターゲットがなく、単なる束です。私が実際のプロジェクトに含めるプロパティ/アイテムの数。

宛先は適切に構築されていますが、サフィックスメタデータが設定されていません。

今のところ、必要なすべてのプロジェクトで宛先定義を複製しましたが、あまりきれいではありません。誰かがより良い解決策を持っているなら、私は興味があります!