dll - 对于解决方案中的不同配置,如何为解决方案中的项目指定不同的构建类型(DLL 或静态库)?
问题描述
我有一个包含多个项目和配置的 VisualStudio 解决方案。
对于其中一个项目,我想为不同的配置使用不同的配置类型(DLL 或静态库)。
例如,对于配置“Debug|Win32”,我想为该项目构建一个 DLL,而对于配置“Static Release|x64”,我想构建一个静态库。
当我尝试为这些配置之一设置配置类型时,这是为所有配置设置的类型,因此对于所有配置,它似乎总是“DLL”或所有配置的“静态库”。
我有一个例子,这可能会有所不同,我无法弄清楚这是如何实现的。还是您必须“破解” vcxproj 文件?
解决方案
实际上,事实证明这是可能的,但是您需要编辑项目文件。
项目文件是 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 嵌套。
推荐阅读
- reactjs - Reactjs 拖放
- algorithm - 基于异常数量增加/减少应用程序负载的算法
- jmeter - 如何解决“无法在空对象上调用方法 contains()”
- python-3.x - 比较两个数据框并使用 pandas 或其他包导出不匹配的数据?
- mysql - 如何维护redis和mysql之间的关系
- php - 使用 Bootstrap 4 在主活动选项卡错误中加载选项卡内容 - PHP
- angular - 如何在Angular项目中集成CKEditor的上传图片插件
- mysql - MYSQL 中的自引用导致:ERROR 1822 (HY000): Failed to add the foreign key constraint
- python - How to show plt.axhline in both subplots from a for loop in python 3
- javascript - 使用不和谐按钮时出错:“类扩展值未定义不是构造函数或空值”