Как получить путь к приложению - PullRequest
5 голосов
/ 09 апреля 2011

Я использую

string path = AppDomain.CurrentDomain.BaseDirectory;, чтобы получить путь к моему приложению, но это дает что-то вроде

C:\Projects\XYZ\ABC\bin\Debug

Я не хочу bin \ Debug. Есть ли способ достичьэто?

Ответы [ 7 ]

11 голосов
/ 09 апреля 2011

Свойство AppDomain.CurrentDomain.BaseDirectory возвращает базовый каталог, который распознаватель сборок использует для поиска сборок.

Таким образом, он работает на 100% так, как должен.Если вы собирались создать приложение, вырежьте его и вставьте в другое место в другой папке или на диске.Эти изменения будут отражены в этом свойстве.

Кроме того, вы упомянули, что вы не хотите эту часть bin\Debug, так что вы хотите, что до этого?Пожалуйста, будьте конкретны.

2 голосов
/ 09 апреля 2011

Если вы хотите выяснить путь к исполняемому файлу вашего приложения (как я понял):

string path = Application.ExecutablePath;
1 голос
/ 01 февраля 2018

Если честно, это не лучшая практика, но она даст то, что вы хотите:

string dir = System.IO.Directory.GetCurrentDirectory().Replace("\\bin\\Debug", "");
1 голос
/ 19 августа 2014
string LPath;
string Location = AppDomain.CurrentDomain.BaseDirectory + "Reports\\rptEmployInfoStat.rpt";
int index;
index = Location.IndexOf("bin");
if (index > 0)
{
     LPath = Location.Remove(index, 10);
}
else
{
     LPath = Location;
}
rd.Load(@LPath);
1 голос
/ 09 апреля 2011

Вы запускаете программу в IDE, и именно поэтому вы получаете такой путь.Попробуйте собрать приложение и запустить его вне IDE - вы увидите, что метод работает правильно.

Редактировать: вы получаете, потому что IDE выполняет отладочную сборку вашего приложения, которая находится в $ PROJECT_DIR \ bin \Debug.

0 голосов
/ 13 марта 2019

чтобы получить то, что вы хотите:

var enviroment = System.Environment.CurrentDirectory;
string projectDirectory = Directory.GetParent(enviroment).Parent.FullName;
0 голосов
/ 14 апреля 2018

Я использую это:

String appSettingsPath = Directory.GetCurrentDirectory();

        if (!File.Exists(Path.Combine(appSettingsPath, "appsettings.json")))
            appSettingsPath = Path.GetDirectoryName(Path.GetDirectoryName(appSettingsPath));
...