2011-04-05 19 views
8

Tôi có một ứng dụng WPF với 3 dự án để biểu diễn kiến ​​trúc 3 lớp. Một dự án được đặt làm dự án chính. Tôi có một số tệp XML trong một dự án không chính. Các tệp XML này được truy cập bởi các hàm được định nghĩa trong các lớp của dự án đó.Bao gồm các tệp xml khi triển khai ứng dụng WPF

Khi tôi cố gắng xuất bản ứng dụng bằng cách sử dụng VS2010 ClickOnce, các tệp XML không được bao gồm trong tệp cài đặt ngay cả sau khi đánh dấu các tệp 'Xây dựng hành động cho nội dung và Sao chép-to-OutputDirectory dưới dạng Sao chép luôn. Khi chạy ứng dụng đã cài đặt, ứng dụng báo cáo rằng các tập tin không được tìm thấy. Tôi có thể thấy một thư mục Application_Files trong thư mục cài đặt được tạo ra bởi ClickOnce, nhưng nó không chứa các tệp XML.

Vì vậy, câu hỏi của tôi là làm thế nào tôi có thể bao gồm các tệp XML trong các thư mục cài đặt và cũng nhận được URL vị trí của chúng trong khi chạy ứng dụng.

Cảm ơn, Naveen

Cập nhật 1: Cấu trúc giải pháp ứng dụng bao gồm ba dự án, nói P1, P2, P3 và. P3 là dự án khởi động chính. P1 và P2 là các dự án thư viện lớp. Các tệp XML được thêm vào dự án P2. Các tập tin được đánh dấu là Build Action -> Content và Copy -> Copy Always. Tuy nhiên, các tệp này không được sao chép vào thư mục dữ liệu của ứng dụng bằng ClickOnce trong khi xuất bản ứng dụng.

Trả lời

1

Có 2 địa điểm ClickOnce sử dụng:

  • một vị trí cho thực thi chính và
  • một vị trí tất cả các dll cần thiết cho tất cả mọi thứ đó không phải là thực thi, tức là nguồn lực, như xml của bạn

để bạn có thư mục ứng dụng và thư mục dữ liệu. Địa chỉ thư mục ứng dụng vẫn có thể được thực hiện như thế này AppDomain.CurrentDomain.BaseDirectory.

Nhưng nếu bạn muốn giải quyết thư mục dữ liệu, bạn cần một cái gì đó cụ thể cho nhấp chuột: ApplicationDeployment.CurrentDeployment.DataDirectory.

Tôi không chắc chắn nếu bạn đã kiểm tra thư mục dữ liệu đó, vì bạn chưa đề cập đến nó trong bài đăng của mình.

+1

Cảm ơn. Tôi đã thử cung cấp địa chỉ dir dữ liệu. Nhưng vấn đề có vẻ là các tập tin XML chính họ không được sao chép trong khi xuất bản ứng dụng. Nếu tôi có các tệp XML trong dự án chính, chúng sẽ được sao chép vào thư mục được tạo bởi ClickOnce. Nhưng các tệp XML của tôi không nằm trong dự án chính; chúng được thêm vào dự án không chính. Tôi đã kiểm tra thư mục với tệp thiết lập nhưng không thể tìm thấy bất kỳ tệp XML nào của tôi ở đó. – naveen

6

Giải pháp đơn giản. Nhấp chuột phải vào tệp dự án yo mà bạn muốn xuất bản. Chọn thuộc tính. Sau đó chọn xuất bản trong cửa sổ đã mở. Nhấp vào nút tệp Apllication. Ở đó, tìm tệp yo .xml, sẽ thuộc loại 'Tập tin dữ liệu' theo mặc định. Thay đổi nó thành Bao gồm. Lưu xây dựng lại và xuất bản và thats nó.

Hy vọng nó sẽ giúp ai đó có nhu cầu.

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