Как настроить путь к документу XPS, чтобы приложение wpf работало на другом ПК?

У меня есть простое приложение wpf, которое содержит одно окно со средством просмотра документов, которое я использую для отображения документа XPS, я написал это, и оно сработало.

 XpsDocument myDoc = new XpsDocument(@"C:\Users\Ahmad
 Elsayed\Desktop\testxpsdoc\xpsTest\xpsTest\Assets\Dokhna - Problems -
 Report.xps", FileAccess.Read);

 DV.Document = myDoc.GetFixedDocumentSequence();

Однако проблема в том, что когда я публикую приложение и использую его на другом компьютере, я получаю следующее:

System.IO.DirectoryNotFoundException: не удалось найти часть пути

Я пробовал использовать относительный путь вот так:

XpsDocument myDoc = new XpsDocument(@"\Assets\Dokhna - Problems - Report.xps", FileAccess.Read);

но все равно то же самое, учитывая, что я установил встроенное действие в Content и скопировал, если новее, в файл xps.

также это обозреватель решений: обозреватель решений


person Ahmed Elsayed    schedule 30.09.2017    source источник


Ответы (1)


Вы должны получить базовый каталог для вашего запущенного приложения, который вы можете добавить к относительному пути к файлу XPS. Это должно работать, даже если вы развертываете приложение, если у вас есть файл XPS в папке Assets рядом с исполняемым файлом.

string xpsFilePath = Path.Combine(
    AppDomain.CurrentDomain.BaseDirectory,
    @"Assets\Dokhna - Problems - Report.xps");

XpsDocument myDoc = new XpsDocument(xpsFilePath, FileAccess.Read);
person Szabolcs Dézsi    schedule 01.10.2017