İstemci makinede Windows Installer aracılığıyla yüklenen bir WPF uygulamasına sahibim. Bu uygulama ayrıca bir dosya uzantısı (.xyz) kaydeder, böylece kullanıcı bir dosyayı çift tıklattığında, WPF uygulamamı açar ve dosyayı (Microsoft Word gibi) görüntüler. Bu programda, kullandığı kaynak veya içerik dosyaları olarak işaretlenmeyen bir ton dosya da vardır (kullanım kılavuzları, parça resimleri vb.).WPF Çalışma Dizini
Kullanıcı, bir .xyz dosyasını çift tıklattığında ve WPF uygulamasını açtığınızda sorun ortaya çıkar. Uygulama şimdi .xyz dosyasının bulunduğu dizinin bir çalışma dizinine sahiptir. Artık program ihtiyaç duyduğu dosyaları (kullanım kılavuzlarını, parça çizimlerini, vb.) Bulamıyor.
Bu tür sorunların üstesinden gelmenin en iyi yolu nedir? Çalışma dizinini (Environment.CurrentDirectory) ayarlayabilirim, ancak açık dosya iletişim kutusum, kullanıcı bir .xyz dosyasını kaydettiğinde veya açtığında çalışma dizinini değiştirir. Parça çizimleri için bir paket uri kullanabilirdim, ancak PDF'ler oldukları için kullanım kılavuzları için Process.Start'ı kullanıyorum. Aramayı denedim, ama hiçbir şeyle gelemedim.
Application.ExecutablePath WPF yok, bu yüzden yansıma kullandı. Bu PDF dosyaları için çalışır ve Resim dosyaları için bir paket URI kullanıyorum. Bu senaryoyu ele almanın daha iyi bir yolu olacak gibi görünüyor. – awilinsk
Alternatif bir yöntem eklendi ... – brendan
[bu bağlantı] (http://stackoverflow.com/a/948438/419348) 'de belirtildiği gibi, 'System.Reflection.Assembly.GetExecutingAssembly(). 'gölge copying'. – AechoLiu