Изменить имя сборки на основе конфигурации (Visual Studio 2005/2008) - PullRequest
24 голосов
/ 21 мая 2009

Можно ли изменить имя сборки в зависимости от конфигурации проекта?

Я пробовал условные прагмы в файле assemblyinfo.cs, но это только меняет атрибуты сборки, но не само имя.

1 Ответ

42 голосов
/ 21 мая 2009

Если вы щелкнете правой кнопкой мыши по своему проекту и выберете «Редактировать файл проекта» (я нахожусь в 2008 году, и это может быть новая опция, если это так, просто откройте файл проекта в любом старом текстовом редакторе), вы должны увидеть что-то похожее на следующее:

  <PropertyGroup>
    ...
    <AssemblyName>ClassLibrary1</AssemblyName>
    ...
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    ...
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    ...
  </PropertyGroup>

По сути, любые свойства, которые не переопределяются в более конкретной группе свойств, наследуются от более общей первой группы. Чтобы добиться желаемого, просто отредактируйте файл, чтобы тег AssemblyName был определен в каждой из конкретных групп:

  <PropertyGroup>
    ...
    <AssemblyName>ClassLibrary1</AssemblyName>
    ...
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    ...
    <AssemblyName>ClassLibrary1Debug</AssemblyName>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    ...
    <AssemblyName>ClassLibrary1Release</AssemblyName>
  </PropertyGroup>

Это изменит имя сборки для каждой конфигурации.

...