Нахождение пути к файлу - PullRequest
       9

Нахождение пути к файлу

2 голосов
/ 02 февраля 2012

Я занимаюсь разработкой приложения C # Visual Studio и использую файл config.txt. Но когда приложение установлено на другом компьютере, как найти путь к файлу config.txt, учитывая, что пользователь установит приложение по произвольному пути (C: \ Folder X)?

Ответы [ 3 ]

2 голосов
/ 02 февраля 2012

Если файл конфигурации находится в том же каталоге, что и исполняемый файл, вы можете использовать:

string exePath = Assembly.GetExecutingAssembly().Location;
string configFileName = "config.txt";

string configFilePath = Path.Combine(Path.GetDirectoryName(exePath), configFileName);

РЕДАКТИРОВАТЬ:

GetExecutingAssembly() должен был вернуть путь C:\Program Files\MyAddIn\your_plugin.dll, поскольку он возвращает фактический путь к загруженной сборке, которая его вызывает.

Поскольку это не так, мы можем предположить, что MS Project на самом деле копирует вашу dll в локальный (и, возможно, временный) каталог перед загрузкойэто (....\AppData\Local\Assembly\... путь).

Поскольку я не знаю почему и как MS Project делает это, самый безопасный способ решения вашей проблемы IДумаю, это сохранить расположение вашей папки Addin в реестре при установке.Если вы отправляете его в виде MSI, ваш установщик должен легко добавить раздел реестра, содержащий местоположение вашего файла плагина.Как это сделать, будет зависеть от того, как вы создадите свой MSI: vdproj?WiX?.

Затем в коде вашего плагина вы можете прочитать в реестре, чтобы получить ваш путь.

0 голосов
/ 02 февраля 2012

Если файл конфигурации находится в той же папке, что и приложение, вы можете использовать Assembly.GetExecutingAssembly().Location

0 голосов
/ 02 февраля 2012

вместо использования текстового файла вы можете использовать настройки .net для сохранения настроек этого приложения.

Больше информации можно увидеть здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...