С различными конфигурациями в решении, как вы можете указать разные типы сборки (DLL или Stati c Lib) для проекта в решении? - PullRequest
0 голосов
/ 21 января 2020

У меня есть решение VisualStudio с несколькими проектами и конфигурациями.

Для одного из проектов я хочу использовать разные типы конфигурации (DLL или Stati c Lib) для разных конфигураций.

Например, для конфигурации «Debug | Win32» я хочу создать DLL для этого проекта, а для конфигурации «Stati c Release | x64» я хочу построить библиотеку Stati c.

Когда я пытаюсь установить тип конфигурации для одной из этих конфигураций, это тип, который затем устанавливается для всех конфигураций, поэтому он всегда будет «DLL» для всех конфигураций или «Stati c Lib» для всех конфигураций.

У меня есть пример, где это может отличаться, и я не могу понять, как это было достигнуто. Или вам нужно взломать файл vcxproj?

1 Ответ

0 голосов
/ 22 января 2020

На самом деле, оказывается, что это возможно, но вам нужно отредактировать файл проекта.

Файл проекта имеет формат xml, и вы должны найти записи, подобные этому

<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">...</PropertyGroup>

В PropertyGroup с условием добавьте ConfigurationType, который вам требуется, например,

<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
  <PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
  <PlatformToolset>v141</PlatformToolset>
</PropertyGroup>

становится

<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
  <PlatformToolset>v141</PlatformToolset>
  <ConfigurationType>StaticLibrary</ConfigurationType>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
  <PlatformToolset>v141</PlatformToolset>
  <ConfigurationType>DynamicLibrary</ConfigurationType>
</PropertyGroup>

Я обнаружил, что это работает, но, как обычно, будьте осторожны при редактировании xml вручную, убедитесь, что у вас есть резервная копия на случай, если вы испортите синтаксис или вложите xml.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...