Вопрос по visual-studio-2008, c#, visual-studio, .net, build-process – VS2008 - Вывод другого имени файла для конфигурации отладки / выпуска

24

При создании приложения C # с Visual Studio 2008 возможно ли установить другое имя выходного файла для конфигурации?

e.g.

MyApp_Debug.exe
MyApp_Release.exe

Я попытался выполнить шаг после сборки, чтобы переименовать файл, добавив текущую конфигурацию, но такой подход кажется неэффективным. Плюс это означало, что Visual Studio больше не мог найти файл при нажатии F5, чтобы начать отладку.

Посмотреть здесь:stackoverflow.com/questions/893003/… Martin Harris

Ваш Ответ

3   ответа
33

отредактировав файл проекта вручную. Найдите<AssemblyName> узел и добавьте к нему условный атрибут:

<AssemblyName Condition="'$(Configuration)'=='Debug'">MyApp_Debug.exe</AssemblyName>
<AssemblyName Condition="'$(Configuration)'=='Release'">MyApp_Release.exe</AssemblyName>

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

Хотя это возможно, это может вызвать проблемы. ЕстьAssemblyConfiguration атрибут, который можно применить к вашей сборке. ВAssemblyInfo.cs, положил:

#if DEBUG
[assembly: AssemblyConfiguration("Debug")]
#else
[assembly: AssemblyConfiguration("Release")]
#endif

Это добавит свойство к вашей скомпилированной сборке, которое сообщит вам, с какой конфигурацией сборки ваше приложение было собрано.

Любопытно ... Разве Visual Studio уже не добавляет AssemblyConfiguration, а затем выполняет сборку?
@DeniseSkidmore: из моего первоначального ответа неясно, но это две альтернативы для достижения одного и того же результата. Лично я предпочитаю apporach только для кода.
Мне не нужно было добавлять строки AssemblyConfiguration вручную, чтобы сделать эту работу. AssemblyInfo.cs использует[assembly: AssemblyConfiguration("")]  Однако я должен был переместитьAssemblyName операторы в существующие группы свойств с условиями, а не помещающие условия непосредственно в AssemblyName.
10

вы можете отредактировать файл .csproj вручную, чтобы добиться этого.

Я, однако, рекомендую более простую форму:

<AssemblyName>MyApp_$(Configuration).exe</AssemblyName>

Однако если вы когда-либо отредактируете свойства этого проекта, это изменение, скорее всего, будет потеряно. Это то, что вам нужно будет оставить вручную, так как это не будет поддерживаемой установкой.

Чтобы вручную отредактировать определение проекта, щелкните правой кнопкой мыши проект в Visual Studio и выберите & quot; Unload & quot ;, затем щелкните правой кнопкой мыши на незагруженном проекте и выберите & quot; Edit & quot; и он откроет определение XML для вас.

Это проблема всех возможных решений. Visual Studio не позволяет редактировать файл проекта, чтобы включить все возможности MSBuild. Любые сделанные вами изменения должны управляться вне Visual Studio. По крайней мере, с этим изменением вы можете увидеть его эффект в Visual Studio.
-1

что есть, однако, по моему опыту, иметь разные имена файлов для конфигураций отладки / выпуска - плохая идея, поскольку она может вызывать всевозможные проблемы (очень похоже на проблему, возникающую у VS при попытке запустить переименованное приложение)

Почему бы просто не указать, есть ли его отладка / выпуск в атрибутах Assembly (например, в комментариях)

Похожие вопросы