問題タブ [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 投票する
1 に答える
111 参照

msbuild - msbuild を使用してメールを読むには?

msbuild を使用してメールの内容を読み取る方法はありますか? これを達成するために利用できるカスタム タスクまたはコミュニティ タスクはありますか?

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

msbuild-4.0 - 別のmsbuildファイルをインポートする場合、評価の順序はどのようになりますか?

共有プロパティファイルがありますshared.properties.proj

。という名前のディレクトリが含まれているレベルの親ディレクトリを検索していますShared Assemblies。または代わりにSharedAssemblies

このコードをslnの中央の場所に配置して、すべてのプロジェクトがコードをインポートできるようにします。sln内のプロジェクトは、すべて同じ階層レベルにあるわけではありません。

サンプル.csproj

インポートするサテライトファイルにプロパティグループをプッシュせずにメインプロジェクトでこれを機能させていますが、参照を共有している可能性のある他のプロジェクト間で再利用できるようにしたいと考えています。

BeforeTargetsターゲットは、機能していない新しい試行でこれを示します。

CheckReferencePaths:CheckReferencePathsを実行していますD:\ projects \ Team \ Project \ Adapters \ DbAdapter \ dbadapter.csproj(103,5):警告:SharedAssemblyPathが'' D:\ projects \ Team \ Project \ Adapters \ DbAdapter\dbadapter.csprojに見つかりません(104,5):警告:SharedAssemblyPathが''
FullPath = \ NuGet \ EntityFramework.4.3.0 \ lib \ net40 \ EntityFramework.dllFullPath
=に見つかりません

共有をインポートするプロジェクトファイルを取得して、アイテムグループのヒントパスを評価する前に、インポートされたプロジェクトのプロパティを評価するにはどうすればよいですか。または、評価順序は適切ですが、私の構造の他の何かが間違っていますか?

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

c# - Microsoft.Build.Evaluation を使用してデータベース プロジェクト (.sqlproj) を発行する

SSDT プロジェクトをプログラムで発行できるようにする必要があります。Microsoft.Build を使用してこれを行うことを検討していますが、ドキュメントが見つかりません。.dacpac を作成するのは非常に簡単に思えますが、既存のデータベースまたは少なくとも .sql ファイルに公開するにはどうすればよいでしょうか。アイデアは、プロジェクトを右クリックして公開を選択したときの動作を実行させることです。選択したデータベースと比較し、アップグレード スクリプトを生成する必要があります。

これは、これまでに.dacpacを作成するために持っていたものです:

基本的に、このMSBuild の例が示すことをコードで実行しようとしています。

申し訳ありませんが、これが私が持っているすべてです。Build クラスのドキュメントは非常に貧弱です。どんな助けでも大歓迎です。

ありがとう。

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

msbuild - PropertyGroup/ItemGroup の可変数の項目を msbuild スクリプトに渡す方法

私の質問を明確に述べるまで読んでください。msbuild スクリプトから可変数の入力パラメーターを受け入れるカスタム msbuild タスクを実装しようとしています。通関タスクの入力パラメータの配列を認識しています

これらは、propertygroup/itemgroup のいずれかを使用して次のように宣言できます。

次に、VS 2010 コマンド ラインから、次のようにプロパティを設定/オーバーライドできます。

msbuild somefile.csproj /t:MyTarget /p:Item1=Name1;Item2=Name2...など

私の質問は次のとおりです:-プロパティグループ/アイテムグループを使用して、msbuildコマンドラインから「n」個の変数パラメーターを渡すことができるように、ビルドファイルでプロパティグループ/アイテムグループの変数を宣言することは可能ですか?

msbuild somefile.csproj /t:MyTarget /p:Item1=Name1;Item2=Name2;ItemN=NameN ('N' は説明のためのみ)

これは可能ですか?

事前に感謝します。どんな助けでも大歓迎です。

0 投票する
0 に答える
173 参照

msbuild - msbuildターゲットの繰り返しを排除しますか?(特に、Execコマンド属性でプロパティを展開できないアイテム識別子の繰り返し)

特にTargetのExecCommand属性内で、msbuildxmlの繰り返しを最小限に抑えたいと思います。

1)最も重要なのは、次のターゲットで、Execコマンド属性の「%(ShaderVertex.Identity)」構造のペアの重複を解除したいことです(たとえば、プロパティVertexTargetNameは「ShaderVertex」として定義されていますが、% ($(VertexTargetName).Identity)は$(VertexTargetName)を展開しません):

2)Targetの前にあるItemGroupの「ShaderVertex」識別子を複製しないのも良いでしょうが、ItemGroupのコンテキストで$(VertexTargetName)を展開することはできません。

3)それほど重要ではありませんが、ターゲット間で重複する構成をさらに減らすことができれば便利です。上記の例を使用して、$(VertexTargetName)と文字「v」(HLSLコンパイラに頂点シェーダーをコンパイルするように指示する)を、すべてのターゲットと同一のすべてのデータを入力する魔法のターゲットジェネレーターに渡すだけです- -またはさらに良いことに、$(VertexTargetName)を渡すだけで、ターゲットジェネレーターがこの引数から「v」を渡す必要があることを推測できます(たとえば、$(から推測できるPixelShaderの「p」の代わりに) PixelTargetName))。

何か案は?

警告:msbuildは関数型プログラミング言語ではないため、ここで私の要望に対応できない可能性があります。また、VS2012がHLSLコンパイルを自動的に処理することも知っていますが、今はVS2010を使用しており、この種のタスクを実行するためにmsbuildについて十分に知りたいと思います。

完全なxmlリストは次のとおりです。

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

msbuild - MSBuild で新しいプロパティを作成し、WIX で参照する方法

ソフトウェアのバージョンを示すプロパティを作成する必要があります。次に、それを WIX プロジェクト内で使用します。つまり、wxs ファイルで参照します。MSBuild がこのバージョン番号にも基づいて出力ファイルの名前を変更するようにするため、wxs ファイルで定義したくありません。PropertyGroup での定数の定義は適切な場所ではありません。その理由は次のとおりです。

PropertyGroup で定義されるプロパティは、構成/プラットフォーム固有です。プロジェクト プロパティ ウィンドウから Visual Studio IDE でこのプリプロセッサを変更するときは、通常、特定の構成/プラットフォームの組み合わせの値のみを変更します。(IDE ですべての構成/プラットフォーム用に変更できることは知っていますが、実際にはすべての組み合わせにコピーを作成することによって行われます。また、1 つの組み合わせのみの値を変更することで同期を台無しにする可能性もあります。たとえば、デフォルトでは、プロジェクト プロパティ ウィンドウのビルド タブを開くと、アクティブな構成/プラットフォームが表示されます)。一方、PropertyGroup は条件なしで定義できますが、IDE で変更するときは常に、すべてではなく、特定の組み合わせに対してのみ変更します。私たちは純粋に VS IDE で SW を構築しているので、

MSBuild の CreateProperty タスクを BeforeBuild ターゲット内で使用しようとしましたが、次の実行では値がまったく有効にならないようです。たとえば、BeforeBuild で既存のプロパティを上書きし、それを WIX で参照すると、古い値が引き続き使用されます。そして、まったく新しいプロパティを作成すると、WIX は未定義のプリプロセッサを訴えます。

それを行う適切な方法はありますか: MSBuild プロパティを作成し、それを WIX 内で使用しますか?

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

regex - $([System.Text.RegularExpressions.Regex]::IsMatch()) が ItemGroupDefinition で 1 回評価されるのはなぜですか?

そのため、MSBuild タスクをいじっていると、Regex メタデータ プロパティがアイテムごとではなく 1 回評価されることがわかりました。

例えば

この出力を生成します

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

msbuild - MSBuild+プロパティの範囲

.csprojファイルでプロパティを定義しています

参照されているプロジェクトもあります:

参照されているプロジェクト、つまりファイルrefproj.csprojのプロパティ$(DeploymentBranch)または$(AppRoot)にアクセスする方法はありますか。

今それらにアクセスしようとすると、値は空白になります

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

msbuild - アイテムに基づいてプロパティ値を設定し、そのプロパティをプロパティ関数の入力として使用するにはどうすればよいですか?

アイテムに基づいてプロパティ値を設定しようとしていますが、プロパティがアイテムに気付かないようですたとえば、私のコードは次のようになります

しかし、それを実行すると、%(temp.Identity)を読み取ることができないと表示されます。何かが足りませんか?ありがとうございました!

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

msbuild - MSbuild、インラインタスクコードでプロジェクトプロパティ値にアクセスする方法は?

csharp で記述されたインライン タスク コードがあります。

とにかくインラインタスクコードでpropectプロパティにアクセスする方法があるのだろうか

たとえば。文字列の一致をプロジェクトのプロパティ値に置き換えようとしています。出来ますか?