2012-05-28 6 views
26

Tôi muốn tạo gói NuGet bổ sung tệp .cs (lớp cơ sở mà người tiêu dùng gói được khuyến khích sửa đổi sau này) vào thư mục gốc của dự án đích trong khi cài đặt.NuGet có thể thêm tệp .cs vào dự án đích không?

Điều đó có khả thi không? Tất cả mọi thứ tôi đã tìm thấy cho đến nay nói "không, bạn chỉ có thể cài đặt các tập tin bên dưới thư mục của gói".

Trả lời

37

Chỉ cần đặt tệp .cs của bạn vào một thư mục có tên là "nội dung", tại thư mục gốc của gói. .

từ các tài liệu:

"bạn có thể bố trí một cấu trúc thư mục đó theo ước NuGet

cụ - Các công cụ thư mục của một gói là cho các kịch bản PowerShell và các chương trình truy cập từ Package Manager Sau khi thư mục được sao chép vào dự án đích, nó được thêm vào biến môi trường `$ env: Path (PATH).

lib - Tập hợp (.dll files) trong thư mục lib được thêm vào như là assembly r eferences khi gói được cài đặt.

nội dung - Các tệp trong thư mục nội dung được sao chép vào thư mục gốc của ứng dụng khi gói được cài đặt.

Hãy nghĩ thư mục Nội dung là thư mục gốc của ứng dụng đích của bạn. Ví dụ, nếu tôi muốn có một gói để thêm hình ảnh trong thư mục/images thư mục của các mục tiêu ứng dụng, hãy chắc chắn để đặt các hình ảnh trong thư mục Content/images của gói "

see:. http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package#From_a_convention_based_working_directory

+0

sẽ cập nhật các công việc gói sau khi tôi làm được sửa đổi –

+4

Hãy nhận biết rằng nội dung chỉ được sao chép khi gói được cài đặt, nâng cấp/khôi phục gói không thay đổi nội dung, t ở đây không thể nâng cấp nội dung bằng nuget. Nuget thực sự chỉ hữu ích cho các phụ thuộc lắp ráp .net. – trampster

+0

@trampster vẫn là trường hợp hôm nay? Các bản sao NuGet gần đây có cho phép cập nhật các tệp "nội dung" không? – Todd

8

bạn cũng có thể sử dụng phần <files> của nuspec để di chuyển tập tin của bạn vào thư mục nội dung khi gói đang được xây dựng:

<?xml version="1.0"?> 
<package> 
    <metadata> 
    ... 
    </metadata> 
    <files> 
    <file src="App.Template.config" target="content" /> 
    <file src="Program.template.cs" target="content" /> 
    </files> 
</package> 
+2

Ký tự đại diện thư mục, \ * \ *, có thể hữu ích. Các bản sao sau tất cả các thư mục con của thư mục ./Sssets vào ./content/Assets trong gói của bạn (và loại trừ bất kỳ tệp nào có tên là readme.txt). stevieg