2012-02-16 36 views
10

Lưu ý: Câu hỏi này tương tự như How to prevent the copy of XML documentation files in a release mode build?, nhưng không giống nhau và câu trả lời không áp dụng. Đọc tiếp để biết tại sao. (Vui lòng hỏi trong phần bình luận hoặc trò chuyện nếu bạn không đồng ý, tôi sẽ rất vui khi xây dựng).Làm thế nào để ngăn chặn Visual Studio từ "xuất bản" tệp tài liệu XML trong các dự án web?


Tôi có dự án thư viện (myLibrary) và dự án ứng dụng web ASP.NET tham chiếu thư viện này (cả hai đều nằm trong cùng giải pháp). "Tạo tệp tài liệu XML" được chọn cho dự án thư viện, bởi vì tôi muốn có các tính năng IntelliSense tốt đẹp trong khi phát triển.

Khi tôi xuất bản ứng dụng web (Trình đơn ngữ cảnh trên dự án/Xuất bản ...), nó chỉ sao chép các tệp cần thiết để chạy ứng dụng (không có mã nguồn, v.v.) vào một số thư mục xuất bản. Tốt lắm. Thật không may, nó cũng sao chép tệp tài liệu XML của thư viện. Vì tôi coi tài liệu của thư viện là bí mật thương mại nên tôi không muốn nó kết thúc trên máy chủ của khách hàng. Vì vậy, chúng ta phải nhớ xóa thủ công tệp này khỏi thư mục xuất bản trước khi triển khai nó.

Có cách nào để ngăn không cho Visual Studio sao chép tệp này khi xuất bản dự án ASP.NET, nhưng vẫn giữ lại lợi ích của tài liệu XML IntelliSense khi phát triển?

Trả lời

10

Giả sử bạn đang sử dụng các cấu hình riêng biệt để phát triển và phát hành (và bất kỳ điều gì khác), bỏ chọn 'tệp tài liệu XML'/tắt thế hệ cho một cấu hình cụ thể sẽ ngăn nó được triển khai khi không cần thiết. Một tùy chọn khác sẽ là hành động hậu xây dựng để xóa tệp/s.

Trước đây, hai tùy chọn này dường như thanh lịch hơn.

+0

Nó không lý tưởng, vì (a) bạn cần chỉnh sửa thủ công tệp vbproj để đặt giá trị này khác nhau để gỡ lỗi/phát hành và (b) bạn bỏ lỡ một số tính năng Intellisense khi mã hóa trong khi "Release" được đặt, nhưng có vẻ như lựa chọn tốt nhất cho đến nay. – Heinzi

+0

@Heinzi Tôi không tin rằng bạn không thể làm điều này cho mỗi cấu hình trong giao diện người dùng, nhưng bạn đã cho tôi nghĩ đến việc làm một kiểm tra sanity. ... Sanity đã kiểm tra: _can_ này được chỉ định cho mỗi cấu hình trong giao diện người dùng. –

+1

Tôi vừa kiểm tra: Bạn có thể làm điều đó cho các dự án C# nhưng không cho các dự án VB. Trong các dự án VB, thiết lập được sử dụng cho các cấu hình * all * (trừ khi bạn tự ghi đè lên điều này trong tệp vbproj - sau đó hộp kiểm trong giao diện người dùng hiển thị "trạng thái không xác định"). – Heinzi

4

Có cách nào để ngăn chặn Visual Studio từ sao chép tập tin này khi công bố dự án ASP.NET,

docs Bật XML tắt trong chế độ Release

nhưng vẫn giữ lại lợi ích của tài liệu XML IntelliSense khi phát triển?

docs Bật XML trên/tắt trong chế độ Debug. Intellisense sẽ hoạt động theo một trong hai cách.

+0

Tôi không đồng ý với câu cuối cùng của bạn: Tóm tắt phương pháp là * không * được hiển thị nếu tài liệu XML bị tắt cho thư viện (chỉ cần kiểm tra: tắt, dọn dẹp dự án, viết mã). – Heinzi

1

tôi đang làm điều này trong Express, nhưng điều này dường như làm việc cho tôi ...

  1. Went vào Properties (đối với dự án)
  2. được Nhấp chuột Publish Tab
  3. Bấm Application nút tập tin
  4. Checked Show All Files
  5. Set xml file để Loại trừ

Như tôi đã nói, sử dụng Express 2010, nhưng điều này đã làm việc (nó không sao chép tệp vào vị trí Xuất bản).

+0

Cảm ơn, nhưng điều này chỉ hoạt động cho các dự án ứng dụng Windows, không phải cho các ứng dụng Web. Họ có một quy trình xuất bản khác và, theo như tôi thấy, bạn không thể cấu hình các tệp riêng lẻ ở đó. – Heinzi

+1

Ah, bỏ lỡ phần đó. Lấy làm tiếc. – APrough

0

Bạn có thể làm điều này bằng cách thêm các dự án triển khai Web addon trên visual studio mà có thể được tải về từ đây: http://www.microsoft.com/download/en/details.aspx?id=19995 và để loại trừ bất cứ tập tin/thư mục bạn cần hãy làm theo các bước được tìm thấy here

2

Có một giải pháp khác. Chỉ cần bao gồm phần sau trong tệp csproj của bạn ở đâu đó trong phần đầu:

<AllowedReferenceRelatedFileExtensions>.pdb</AllowedReferenceRelatedFileExtensions> 

Vậy đó. Các tệp XML sẽ không còn được xuất bản nữa. Tất nhiên, bạn có thể làm cho nó có điều kiện về cấu hình cụ thể.

+0

Lưu ý: thay đổi này sẽ dừng các tệp .config từ các assembly được tham chiếu (trong cùng một giải pháp) khỏi bị xuất ra. – Lyra

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