2008-09-16 29 views

Trả lời

64

Nhờ sự giúp đỡ của bạn, quản lý để sắp xếp nó như sau:

<ItemGroup> 
    <LibraryFiles Include="$(LibrariesReleaseDir)\**\*.*" 
        Exclude="$(LibrariesReleaseDir)\**\.svn\**" /> 
</ItemGroup> 

Hóa ra mô hình phù hợp về cơ bản chạy trên các tập tin, vì vậy bạn phải loại trừ tất cả mọi thứ DƯỚI .svn thư mục (.svn\\**) cho MSBuild để loại trừ chính thư mục .svn.

+1

@Kieran Benton: cảm ơn cho cập nhật, tôi sẽ nộp một connect.microsoft.com yêu cầu làm rõ tài liệu MSDN. – user7116

+1

Tôi nhận thấy rằng bạn cũng đã đặt trước giá trị Loại trừ với "$ (LibrariesReleaseDir) \\ ** \" (so với giá trị trong OP của bạn). Điều đó có ý nghĩa không? –

4

Đây là cách tốt hơn để thực hiện điều đó, thật sự đệ quy. Tôi dường như không thể đưa ra giải pháp của bạn để đi sâu hơn 1 cấp độ:

<LibraryFiles 
    Include="$(LibrariesReleaseDir)**\*.*" 
    Exclude="$(LibrariesReleaseDir)**\.svn\**\*.*"/> 
+1

Tính năng này có hoạt động trên tệp .svn \ entries không, vì không có dấu chấm trong tên tệp? –

12

Vì vậy, vấn đề là với các biến chuỗi vì một số lý do trong msbuild. Các công trình sau đây cho tôi, lưu ý rằng tôi phải chỉ sử dụng các đường dẫn tương đối dựa trên biến MSBuildProjectDirectory.

<CreateItem Include="$(MSBuildProjectDirectory)\..\Client\Web\Foo.Web.UI\**\*.*" 
      Exclude="$(MSBuildProjectDirectory)\..\Client\Web\Foo.Web.UI\**\.svn\**"> 
    <Output TaskParameter="Include" ItemName="WebFiles" /> 
</CreateItem> 

Sau đây không hoạt động:

<PropertyGroup> 
    <WebProjectDir>$(MSBuildProjectDirectory)\..\Client\Web\Foo.Web.UI</WebProjectDir> 
</PropertyGroup> 
<CreateItem Include="$(WebProjectDir)\**\*.*" 
      Exclude="$(WebProjectDir)\**\.svn\**"> 
    <Output TaskParameter="Include" ItemName="WebFiles" /> 
</CreateItem> 

Rất lạ! Tôi chỉ dành 3 giờ cho cái này.

+2

BTW: Đây là câu trả lời đúng. – splattne

1

tôi đã gặp phải một số trục trặc sử dụng Bao gồm/Loại trừ phương pháp, vì vậy đây là cái gì đó là làm việc cho tôi thay vì:

<ItemGroup> 
    <MyFiles Include=".\PathToYourStuff\**" /> 
    <MyFiles Remove=".\PathToYourStuff\**\.svn\**" /> 
</ItemGroup> 
Các vấn đề liên quan