Tôi có một ứng dụng WPF được cài đặt trên máy khách thông qua Trình cài đặt Windows. Ứng dụng này cũng đăng ký phần mở rộng tệp (.xyz), vì vậy khi người dùng nhấp đúp vào một tệp, nó sẽ mở ứng dụng WPF của tôi và hiển thị tệp (như Microsoft Word). Chương trình này cũng có rất nhiều tệp không được đánh dấu là tệp tài nguyên hoặc nội dung mà tệp sử dụng (hướng dẫn sử dụng, bản vẽ một phần, v.v.).Danh mục công việc WPF
Sự cố xảy ra khi người dùng nhấp đúp vào tệp .xyz và nó sẽ mở ứng dụng WPF. Ứng dụng hiện có thư mục làm việc của thư mục chứa tệp .xyz. Bây giờ chương trình không thể tìm thấy bất kỳ tập tin nào (hướng dẫn sử dụng, bản vẽ một phần, vv) mà nó cần.
Cách tốt nhất để xử lý loại vấn đề này là gì? Tôi có thể thiết lập thư mục làm việc (Environment.CurrentDirectory), nhưng hộp thoại mở tập tin của tôi thay đổi thư mục làm việc khi người dùng lưu hoặc mở tệp .xyz. Tôi có thể sử dụng một gói uri cho các bản vẽ một phần, nhưng tôi sử dụng Process.Start cho các hướng dẫn sử dụng bởi vì chúng là một PDF. Tôi đã thử tìm kiếm, nhưng không thể nghĩ ra được.
Application.ExecutablePath không tồn tại trong WPF, vì vậy tôi sử dụng phản ánh. Điều này làm việc cho các tập tin PDF và đối với các tập tin hình ảnh, tôi đang sử dụng một gói URI. Nó chỉ có vẻ như sẽ có một cách tốt hơn để xử lý scenerio này. – awilinsk
Đã thêm phương thức thay thế ... – brendan
Khi [liên kết này] (http://stackoverflow.com/a/948438/419348) cho biết, 'System.Reflection.Assembly.GetExecutingAssembly(). Vị trí' có thể nhận được vị trí sau 'shadow-copy'. – AechoLiu