2009-02-27 7 views
10

Tôi có một dự án ứng dụng WPF với một số tham chiếu dự án trong một giải pháp duy nhất trong VS 2008. Khi tôi biên dịch giải pháp của tôi, tất cả các dll được tham chiếu được đưa vào cùng một thư mục mà chính .exe được đưa vào.Visual Studio có thể biên dịch các tham chiếu dự án thành một thư mục khác, sau đó chính là .exe

Có thể định cấu hình dự án chính của dự án .exe để xuất tất cả các tham chiếu trong thư mục con tương ứng với .exe của tôi không?

Tôi muốn kết quả cuối cùng là một cái gì đó như thế này:

MyApp.exe MyApp.exe.config Lib \ SomeReference.dll Lib \ SomeReference2.dll

(tôi giả sử nếu điều này là có thể, nó sẽ có thể với bất kỳ .exe).

Cảm ơn! Jon

Trả lời

7

Dường như đây là một quá trình khá chuyên sâu.

Trước tiên hãy đặt thuộc tính Sao chép nội bộ của tham chiếu thành sai để .dll không được sao chép vào thư mục bin \ Debug.

Sau đó tạo một yếu tố assemblyBinding\probing trong app.config của bạn để hướng dẫn thời gian chạy để tìm dlls trong thư mục Lib

Sau đó tạo một hậu xây dựng hành động để sao chép các file dll cần thiết vào thư mục \ bin \ Debug \ Lib thư mục.

+0

có thể sẽ dễ dàng hơn khi sao chép Bản địa phương = true, nhưng kết hợp assemblyBinding \ probing bằng cách di chuyển * .DLL từ $ (TargetDir) sang thư mục con sau khi tạo. –

+0

Nếu đây là những tài liệu tham khảo dự án, tôi đồng ý với bạn, nhưng nếu đây chỉ là dlls biên dịch trước, bạn cũng có thể sao chép chúng từ nguồn của họ trong postbuild. Ngoài ra, nếu bạn đang tạo một msi, bạn sẽ không muốn các dll là một phần của đầu ra chính, mà tôi tin rằng chúng sẽ là nếu CopyLocal = true. – foson

+0

ah có, cảm ơn, tôi đã suy nghĩ về tài liệu tham khảo dự án. Tham chiếu DLL thay vì các dự án là một nghiệp xấu, nhưng các DLL và dự án triển khai bên thứ ba là những điểm tuyệt vời. –