irfankhan200 Ответов: 3

Извлечение выходной папки сборки в C#


Привет,

Я хочу получить имя выходной папки сборки проекта, например, если конфигурация сборки-Debug, то она должна быть bin/Debug или если конфигурация сборки-Release, то она должна быть bin/Release.

Я использовал следующий код
Microsoft.Build.Evaluation.Project project =
               new  Microsoft.Build.Evaluation.Project(projectfilename);
               string assemblyPath = project.GetPropertyValue("OutputPath");


Но я всегда получаю assembleyPath = "bin/Debug", какова бы ни была конфигурация.

Я заранее благодарен любому ответу.

Что я уже пробовал:

Я использовал следующий код
Microsoft.Build.Evaluation.Project project =
               new  Microsoft.Build.Evaluation.Project(projectfilename);
               string assemblyPath = project.GetPropertyValue("OutputPath");

3 Ответов

Рейтинг:
2

RickZeeland

Вы можете использовать:

Assembly.GetExecutingAssembly().Location
Но не для службы Windows, то лучше использовать:
string currentDir = Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory) ?? string.Empty;


irfankhan200

Но я не читаю путь к текущему запущенному приложению. Я хочу прочитать путь к exe-файлу другого проекта(csproj), хранящегося на диске.

Рейтинг:
1

RickZeeland

Я нашел несколько примеров, которые показывают, как использовать проект.GetPropertyValue():
Проект.GetPropertyValue, Microsoft.Build.Оценка Кода C# (CSharp)-Beispiele - HotExamples[^]
Надеюсь, вы найдете этот ответ более полезным :)


Рейтинг:
0

OriginalGriff

Вероятно, самый безопасный способ-это получить исполняемый путь: Приложение.Свойство ExecutablePath (System.Окна.Формы) | Microsoft Docs[^]


irfankhan200

Но я не читаю путь к текущему запущенному приложению. Я хочу прочитать путь к exe-файлу другого проекта(csproj), хранящегося на диске.

OriginalGriff

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