2012-03-13 1 views
0

Я разработал настольную систему, и ее необходимо развернуть. Мои пути полностью. См. Пример ниже. Я беспокоюсь, что когда я разворачиваю свою систему, она не будет работать на их компьютерах, потому что у них нет диска D или папки MY_THESIS. Помогите?Как правильно написать путь к файлу для переносимых файлов?

System.Diagnostics.Process.Start(@"D:\MY_THESIS\WORKING FILES\WindowsFormsApplication2\WindowsFormsApplication2\User Manual\User Guide Outline.pdf"); 

ответ

0

Предполагая, что ваш ехе находится в том же каталоге, Ф, просто используйте:

string path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); 

path = System.IO.Path.Combine(path, "User Guide Outline.pdf"); 
System.Diagnostics.Process.Start(path); 
+0

Спасибо за быстрый ответ Стив! Мой PDF находится под папкой ** User Manual **, в то время как exe находится под ** obj> Debug ** – Ritzel

+1

Рассмотрите возможность развертывания EXE и вашего PDF-файла в тот же каталог. Типичный сценарий развертывания имеет ваш EXE, зависимые DLL и все файлы поддержки в одном каталоге или его подкаталогах. –

+0

Спасибо! Это сработало отлично! :) – Ritzel

2

Лучшей практикой было бы написать в каталоге, который, как вы уверены, будет существовать, например Мои документы.

Этот фрагмент кода дает доступ к этому каталогу:

Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)

SpecialFolder перечисление дает вам доступ к другим общим каталогам.

В противном случае, если вы тот, кто выбирает, где PDF будет места, вы всегда можете разместить PDF в каталоге приложения и доступ к нему с помощью Assembly.GetExecutingAssembly().Location или System.IO.Path.GetDirectoryName(Application.ExecutablePath)

+0

Зачем вам развертывать приложение в «Мои документы» ...? =) – gdoron

+0

Мне нужен путь к файлу для переносимых файлов, потому что я помещаю Руководство пользователя и базу данных вместе со всем исходным кодом и exe на компакт-диск. Я не думаю, что это сработает. – Ritzel

+0

ohh я получаю его .. так что в основном у вас есть проект A (name it), и теперь у проекта есть исходный код/​​база данных/руководство пользователя, которое находится в формате pdf. Это так? – MDMalik

0

используйте app.config файл Там

connectionStrings> 
    <add name="File Path" connectionString="D:\MY_THESIS\WORKING FILES\WindowsFormsApplication2\WindowsFormsApplication2\User Manual\User Guide Outline.pdf" 
      /> 
</connectionStrings> 

Теперь, как только вы развернете на этом компьютере, вы можете просто указать файл xml-файла строки подключения, к которому всегда находится файл. Так что вы получите этот файл. Если вы не развертываете проект.

+0

Привет, да, я не развертываю проект, поэтому мне нужен путь, который сможет прочитать файл в каталог независимо от того, в каком диске он находится. EXE будет размещен на компакт-диске. – Ritzel

+0

Как вы планируете запускать exe из cd. Я знаю, что это произойдет, но это будет прямой щелчок по exe без установки или чего-нибудь еще. – MDMalik

Смежные вопросы