Tôi có một ứng dụng web ASP.NET bao gồm nhiều dự án ASP.NET (ngoài các thư viện nhiều lớp). Rõ ràng một trong những dự án là dự án gốc trong khi phần còn lại là các dự án con (khái niệm chi tiết về cấu trúc ứng dụng này được giải thích here). Mỗi dự án con/con có thư mục riêng và tất cả chúng đều nằm trong một thư mục mà tôi gọi là "Mô-đun" trong thư mục gốc. Vì IIS có thể xử lý một dự án cho mỗi ứng dụng, tất cả các dự án con sẽ được coi là các thư mục thông thường (khi chạy). Vì vậy, tôi đã sửa đổi đường dẫn đầu ra xây dựng cho từng dự án con thành "..\..\bin\
" là thư mục bin gốc. Bằng cách đó, tôi có mọi thứ được thiết lập chính xác. Từ quan điểm Visual Studio, tôi có sự sang trọng của việc có các dự án khác nhau theo một giải pháp. Và từ quan điểm IIS, tôi có một dự án với một thư mục bin và một Tệp cấu hình Web. Bây giờ nó xuất bản. Nếu tôi xuất bản dự án gốc (bằng cách nhấp chuột phải vào nút dự án -> xuất bản) kết quả được xuất bản sẽ là dự án đó mà không có thư mục "Mô-đun". Các thư mục bin kết quả cũng sẽ bỏ lỡ các dự án phụ dlls dự án. Và đó là mong đợi. Vì vậy, tôi nghĩ rằng cách rõ ràng để khắc phục vấn đề này là xuất bản tất cả các dự án web của tôi (không chỉ root), lưu ý rằng các dự án con của tôi xuất bản đường dẫn cần phải là thư mục "Mô-đun" trong đường dẫn xuất bản của dự án gốc. Tất cả những điều đó đều hiệu quả ngoại trừ một vấn đề quan trọng. Nó bật ra rằng mỗi dự án tiểu xuất bản có thư mục bin riêng của mình và do đó thư mục bin gốc không chứa các DLL đầu ra của các dự án phụ. Vì vậy, tôi đã tìm ra, trong khi Visual Studio cho phép tôi chỉ định đường dẫn đầu ra của từng dự án theo cách tôi muốn (như tôi đã đề cập đến "..\..\bin\
"), việc xuất bản ClickOnce không tôn trọng và chỉ tạo thư mục bin cho mỗi dự án phụ . Có cách nào để xác định đường dẫn đầu ra (thư mục bin) của thủ tục xuất bản ClickOnce không? Nếu không, đâu là giải pháp thay thế?Xuất bản ứng dụng web với nhiều dự án
Trả lời
Như bạn đã nói bạn có nhiều projects
và một là dự án gốc. Vì vậy, mọi dự án phải có thư mục bin
riêng vì nó là project
không phải là sub folder
của root project
.
Nếu sub project
sẽ không có thư mục bin
cách thư sẽ biết từ vị trí cần tải assemblies
được sử dụng trong đó project
.
Không phải là ý tưởng tồi khi có thư mục bin
cho mỗi phụ project
.
Câu trả lời được cung cấp here có thể giải quyết vấn đề của bạn. Bằng cách thêm vào các thuộc tính sau vào tập tin .csproj
của bạn (sửa đổi từ câu trả lời liên quan), bạn có thể thông báo cho ClickOnce để bao gồm nội dung bổ sung trong thư mục đầu ra:
<ItemGroup>
<Content Include="bin\**\*.*" />
</ItemGroup>
Một câu trả lời cho here cung cấp một cách đệ quy bao gồm nội dung bổ sung vào của bạn đầu ra của dự án nằm ngoài thư mục dự án của bạn, có thể áp dụng ở đây; từ quan điểm của dự án gốc, các dự án khác nằm ngoài thư mục của nó. Tuy nhiên, tôi không chắc liệu ClickOnce có bỏ qua điều này hay không.
<Content Include="..\..\MyContentFiles\**">
<Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
Tôi chưa có cơ hội để kiểm tra giải pháp của bạn nhưng tôi tin rằng nó hữu ích. Tôi sẽ đánh dấu là câu trả lời nếu làm việc. – yazanpro
- 1. Dự án trang web ASP.Net so với dự án ứng dụng web
- 2. có thể làm cho nant chạy một bản xuất bản trên dự án ứng dụng web
- 3. Eclipse - Xuất bản & Chạy Dự án Web Đơn giản
- 4. Trang web ASP.NET 'Xuất bản' so với Dự án Triển khai Web
- 5. Triển khai ứng dụng web Eclipse với Tomcat: Cung cấp phụ thuộc nhiều dự án?
- 6. Tách/Modularizing các dự án ứng dụng web ASP.NET lớn
- 7. Nhiều dự án với Eclipse
- 8. Làm thế nào để xuất bản một dự án web với MSBuild?
- 9. AjaxControlToolkit 7.ngắt Dự án Ứng dụng Web VS2012
- 10. Xuất bản một dự án web từ giải pháp với msbuild
- 11. tham chiếu lớp app_code trong dự án ứng dụng web
- 12. Không xuất bản dự án winform
- 13. Thiếu mục tiêu xuất bản Ứng dụng Web Visual Studio
- 14. Nhiều ứng dụng trong một dự án hoặc một dự án cho mỗi ứng dụng trong Firebase?
- 15. Hiển thị phiên bản dự án trong ứng dụng web ASP.NET Core 1.0.0
- 16. Eclipse có thể nhập dự án Web Maven dưới dạng "Ứng dụng web động" không?
- 17. Làm việc với nhiều dự án
- 18. Xuất bản ứng dụng ClickOnce với MSBuild
- 19. Tôi đang cố gắng sử dụng TFS2015 để xuất bản giải pháp trang web như VS2015 với Xuất bản ứng dụng web
- 20. Azure triển khai liên tục với nhiều dự án
- 21. Tái xuất bản ứng dụng web ASP.NET Trong khi trang web đang hoạt động
- 22. Xuất bản ứng dụng ASP.NET MVC lên máy chủ lưu trữ web - triển khai các tệp trong cấu trúc dự án VS thay vì ứng dụng
- 23. Xuất bản các dự án WebAPI và MVC vào cùng một trang web Azure?
- 24. Tên dự án so với tên ứng dụng ở Django
- 25. MSBuild xuất bản dự án web từ dòng lệnh không Gói thay vì FileSystem
- 26. Cách xây dựng nhiều dự án với gradle với nhiều phiên bản jdk?
- 27. Sản xuất nhiều thực thi từ dự án duy nhất
- 28. Phụ thuộc dự án Web Eclipse
- 29. Android Studio - Nhiều ứng dụng Android với phụ thuộc chung trong một dự án duy nhất
- 30. C#: Cách chuyển đổi dự án trang web sang một Dự án Web
Từ liên kết tôi đưa vào câu hỏi. xin vui lòng kiểm tra phần này hy vọng rằng sẽ làm cho trường hợp của tôi rõ ràng hơn. 'Sau khi bạn cấu hình các dự án con để chia sẻ một thư mục gốc ứng dụng IIS phổ biến, bạn có thể chia sẻ tài nguyên giữa các dự án trong giải pháp. Ví dụ: bạn có thể kéo điều khiển người dùng từ dự án tài nguyên được chia sẻ vào tệp .aspx trong một dự án khác. Lưu ý rằng bạn chỉ có thể làm điều này sau khi bạn cấu hình các dự án để chia sẻ một gốc ứng dụng IIS phổ biến. Visual Studio .NET không cho phép bạn chia sẻ tài nguyên nếu các dự án vẫn còn trong thư mục gốc ứng dụng IIS riêng biệt.' – yazanpro
Vì vậy, từ quan điểm IIS, tôi sẽ chỉ có một dự án. Và về mặt kỹ thuật, các dự án con sẽ tải các assembly của chúng từ thư mục bin gốc (tôi đã thiết lập đường dẫn đầu ra của tất cả các dự án con của tôi thành '.. \ .. \ bin', đó là thư mục bin gốc. – yazanpro