2012-05-15 66 views
1

我是MSBuild的新手,我試圖將文件從源控件上的一個文件夾複製到項目目錄。以下是代碼:MSBuild - 如何複製項目目錄之外的文件

<ItemGroup> 
    <MySourceFiles Include="C:\my_clearcase_view\Demo_Folder\demo.jar" /> 
</ItemGroup> 

<Target Name="AfterBuild"> 
    <Copy SourceFiles="@(MySourceFiles)" DestinationFiles="$(MSBuildProjectDirectory)\demo.jar" /> 
</Target> 

此代碼與'demo.jar'文件的絕對路徑一起使用。而文件夾結構如下所示:

C:\my_clearcase_view\ 
      - DemoFolder (Source) 
      - my_project (Destination, which is $(MSBuildProjectDirectory)) 

假設源路徑不會改變,我怎麼可以得到源文件是我在文件夾層次的項目上面的相對路徑?我只能通過使用$(MSBuildDirectory)來到項目目錄的根目錄。請指教。提前致謝。

回答

1

如果我正確地理解你,你可以做;

<ItemGroup> 
    <MySourceFiles Include="$(MSBuildProjectDirectory)\..\Demo_Folder\demo.jar" /> 
</ItemGroup> 
+0

謝謝Rory。但那不行。我想上去我的$ MSBuildProjectDirectory的層次結構。這給了我一個路徑 - 「C:\ my_clearcase_view \ my_project \ .. \ Demo \ demo.jar」,它引發了'找不到路徑'錯誤。 – user591410

+0

該錯誤與您的問題中的示例略有不同 - 它具有「\ Demo \」而不是「\ Demo_Folder \」。這是你的問題嗎? 「..」目錄僅僅意味着「此目錄的父目錄」,所以如果你想要進入一個(或更多)關卡,它應該可以工作。 –

+0

它工作,如果我刪除$(MSBuildDirectory)。謝謝。 – user591410

0

根據羅裏的回答,我嘗試了不同的組合,並最終得到它。

<ItemGroup> 
    <MySourceFiles Include="..\Demo_Folder\demo.jar" /> 
</ItemGroup> 

感謝指針羅裏。

相關問題