2016-04-29 8 views
0

Visual Studio 2015の.targetsメカニズムを使用して、特定のファイルタイプで実行するカスタムツールがあります。はどのように.targetsでソリューションフォルダを参照していますか?

プロジェクトは多くのレベルに存在し、コードが任意のドライブ/フォルダ(TFS CIエージェントを含む)。

私は、相対パスを使用してみましたが、ファイルが異なるレベルにあるので、それはすべてのプロジェクトのために動作しません。

私は、レジストリの設定や環境変数を使用してみましたが、それは別のフォルダにするたびに構築する可能性があるCIマシンのためによく前兆はありません。

それは、私は、ツールのディレクトリへの相対パスを使用することができ、プロジェクト/ファイルの中でそのソリューションフォルダを取得することはできますか?

私は見つけることができるすべては助けていないようだこれらのプロパティ、次のとおりです。 一般MSBuildのプロパティ: https://msdn.microsoft.com/en-us/library/bb629394.aspx

https://msdn.microsoft.com/en-us/library/ms164309.aspx

レジストリー変数と環境変数: https://msdn.microsoft.com/en-us/library/ms171458.aspx

答えて

0

あなたはすべてを使用することができます.targets内の標準トークン。プリプロセッサマクロでvcxprojのVisual Studioのプロパティの編集を使用するか、パスや使用可能な変数の束を見て、このようなを含める: ちょうど

$(SolutionDir) 

https://msdn.microsoft.com/en-us/library/c02as0cs.aspx

0

セルフサービスの回答を参照してください使用しています。必要なものは、通常、そこに、名前で、またはここで必要なものを含めて、見つけることができます。どのドキュメントよりも優れています。

+0

私が説明していないかもしれないことは、ソリューションのフォルダ構造の深さが異なる50のプロジェクトがあることです。私は、特定の種類のファイルに対して特定のツールを実行しています。私はcsprojファイルで.targetsファイルをインポートすることでこれを実現します。これはロジックを集中化しますが、プロジェクト以外の相対パスを必要とします。しかし、$(SolutionDir)に相対的なものはOKです。あなたが話していることのスクリーンショットの例がありますか?私はちょうどそうトリックを欠落している可能性がありVS2015にVS2010から飛躍を撮影しました。 – GilesDMiddleton

+0

VS2010とvs2015の間のトリックに差はありません。 Buuutttttこれを行うには、C++プロジェクトを作成する必要があるようです。私が言ったように、vcxproj。プロジェクト、構成プロパティ、リンカー、一般的なプロパティを右クリックします。出力ファイルの下矢印をクリックし、編集を選択します。マクロをクリックします。表示すると予想されるパスの例を入力するか、検索フィルタボックス内のキーワードを推測します。彼らは皆も評価するものを見ることができます。それらのうちのいくつかはC#で意味をなさないが、私はSolutionDirは(私は確信していないが、あなたはそう言った) – zeromus

関連する問題