2011-07-02 119 views
1

我在同一個目錄下有一個.dll和一個.targets文件。在.targets文件中,我想將.dll添加到ItemGroup項目。但是,如果我只是將它加入與此類似:msbuild .targets文件中ItemGroup項目的相對路徑

<Example Include="Example.dll" /> 

到Example.dll的路徑似乎是解決爲相對於被包括.targets文件的.csproj。我如何使用這樣的相對路徑將項目添加到.targets文件中的ItemGroup?

例如,假設我有:

C:\lib\Example.dll 
C:\lib\Example.targets 
C:\src\Example.csproj 

當從.targets裏面包括Example.dll文件的完整路徑解析爲C:\src\Example.dll這是不對的,我要的是C:\lib\Example.dll。有沒有人有什麼建議?

回答

7

裏面的.targets文件,利用這一點,

<Example Include="$(MSBuildThisFileDirectory)\Example.dll" /> 

...那保留的屬性將解析爲其中.targets文件所在,而不是項目文件導入.targets文件,目錄這是相對路徑分辨率的默認值。

+0

工程就像一個魅力! –