@Rusty Divine дал хороший ответ, тем не менее, может быть, вы найдете это будет лучше для вас:
System.IO.Path.Combine(System.Text.RegularExpressions.Regex.Replace(AppDomain.CurrentDomain.BaseDirectory, @"\\bin\\Debug$", String.Empty, System.Text.RegularExpressions.RegexOptions.IgnoreCase) , RELATIVE_PATH, "FILENAME.EXE");
Например:
System.IO.Path.Combine(System.Text.RegularExpressions.Regex.Replace(AppDomain.CurrentDomain.BaseDirectory, @"\\bin$", String.Empty, System.Text.RegularExpressions.RegexOptions.IgnoreCase) , "App_Data\\Init", "fileName.txt");
Таким образом (с помощью Regx) , мы гарантируем, что единственная замена может быть в суффиксе (в конце) строки AppDomain.CurrentDomain.BaseDirectory
. Если на пути к серверу есть подпапки с именем: "\ bin \ Debug", они не будут заменены.
Это решение нечувствительно к регистру, что означает, что «\ BIN \ debug» также будет заменен.
Кроме того, вам не нужно добавлять строки в одну строку. System.IO.Path.Combine
сделает это за вас.
Только в prod. В среде IDE при отладке «AppDomain.CurrentDomain.BaseDirectory» указывает на корень проекта. – ProfK