2016-04-29 84 views
0

我有我使用的.targets機制在Visual Studio 2015年如何引用.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

自助答案:在預處理宏使用Visual Studio的屬性編輯爲vcxproj或包括路徑或這樣來看待一堆可用的變量。你通常可以在那裏找到你需要的東西,通過名字或者例子,包括你在這裏需要的東西。比任何文檔都好。

+0

我想我可能沒有解釋的是我在解決方案中有不同深度的文件夾結構中有50個項目。如果遇到某些文件類型,我正在執行特定的工具。我通過在csproj文件中導入.targets文件來實現這一點。這集中了邏輯,但需要非項目相對路徑。然而相對於$(SolutionDir)是可以的。你有關於你在說什麼的截圖例子嗎?我只是從VS2010飛躍到VS2015,所以可能會錯過一個竅門。 – GilesDMiddleton

+0

vs2010與vs2015之間的技巧沒有區別。 Buuuttttt它看起來像你可能不得不創建一個C++項目來做到這一點。正如我所說的,vcxproj。右鍵單擊項目上的屬性,配置屬性,鏈接器,一般。單擊輸出文件上的向下箭頭,選擇編輯。點擊宏。鍵入您希望看到的路徑示例,或者在搜索過濾器框中猜出關鍵字;你可以看到他們都評估了什麼。其中一些在c#中沒有意義,但我認爲SolutionDir(我不確定,但你這麼說) – zeromus

相關問題