2013-03-12 38 views
8

Bài toán: Tôi có tệp .sql trong dự án Visual Studio mà tôi muốn loại trừ khỏi gói NuGet của mình. Các tệp .sql này được lồng vào các thư mục khác nhau và tôi đã không thể loại trừ thành công tất cả các tệp .sql khỏi gói nuget của tôi.Loại trừ tất cả các tệp thuộc loại trong NuGet


1: tôi đã tạo ra một tập tin .nuspec bằng cách chạy lệnh sau đây vào dự án mục tiêu của tôi:

nuget spec 

2: tôi đã chỉnh sửa các tập tin kết quả nuspec để nó trông như thế này:

<?xml version="1.0"?> 
<package > 
    <metadata> 
    <id>$id$</id> 
    <version>$version$</version> 
    <title>$title$</title> 
    <authors>$author$</authors> 
    <owners>$author$</owners> 
    <requireLicenseAcceptance>false</requireLicenseAcceptance> 
    <description>Security Core Impl</description> 
    <releaseNotes>Security Core Impl</releaseNotes> 
    <copyright>Copyright 2013</copyright> 
    <tags>Security Core</tags> 
    </metadata> 
    <files> 
    <file src="**\*.dll" target="lib\net40\" exclude="**\*.sql;" /> 
    </files> 
</package> 

3: tôi chạy t ông sau lệnh để xây dựng .nupkg tôi:

nuget pack -Prop Configuration=Release 

Bất cứ khi nào tôi cài đặt gói này vào dự án khác, tuy nhiên, các file sql được bao gồm. Tôi đã thử một vài biến thể khác nhau của loại trừ ở trên và đã thử chuyển đổi -Exclude. Không có gì có vẻ hiệu quả.

Tất cả các file sql được đánh dấu: Hành động

  • xây dựng: Không
  • Copy to Output Directory: Đừng sao chép

Tôi cũng đã thử xoá bộ nhớ cache NuGet tôi qua tùy chọn Visual Studio .

Lưu ý: Gói NuGet được lưu trữ trên máy chủ riêng.

+0

Bạn đã cố gắng thực hiện điều này mà không cần nuspec? Tôi có nghĩa là loại bỏ nuspec tạo ra và thực hiện 'nuget gói myproj.csproj -Exclude ** \ *. Sql -Prop Configuration = Release' –

Trả lời

12

Tôi vừa gặp sự cố tương tự, nhưng với tệp .txt. Giải pháp được chỉ ra bởi một đồng nghiệp là thay đổi Build Action từ "Nội dung" thành "Không".

+0

(facepalm) Tôi vẫn tò mò tại sao OP (và tôi) không thể loại trừ để làm việc, nhưng cảm ơn vì điều này. – FLGMwt

1

Tôi giả sử tệp * .sql của bạn nằm trong thư mục content của gói?

<file src="**\*.dll" target="lib\net40\" exclude="**\*.sql;" /> yêu cầu NuGet thêm tất cả các tệp .DLL trong lib \ net40. Các tệp SQL bị bỏ qua vì bao gồm của bạn chưa bao gồm chúng.

Bạn có thể thử thêm <file target="content\" exclude="**\*.sql;" /> vào nuspec không?

+0

thêm gây ra lỗi: NotSpecified: (Thuộc tính bắt buộc 'src' bị thiếu.:String) – barrypicker

Các vấn đề liên quan