gpt4 book ai didi

visual-studio - Visual Studio 2008 是否支持特定于配置(调试/发布版本)的引用?

转载 作者:行者123 更新时间:2023-12-02 02:23:30 26 4
gpt4 key购买 nike

我有一个带有一个 C++/CLI 文件(唯一使用/CLI 编译的文件)的 native C++ 项目,我想添加对 C# DLL 的引用。

调试和发布有不同的版本,但我似乎只能添加一个适用于所有配置的引用。引用搜索路径对话框包含一个警告,如果我尝试使用任何 $ConfigurationName 类型参数,它们将只引用项目中的第一个配置。

所以我目前的想法是:

  • 在一个解决方案下将两个项目结合在一起,并添加对“项目”而不是 DLL 程序集的引用。我的理解是 Visual Studio 随后将匹配配置。不太理想,因为我的项目和 DLL 由不同的区域“拥有”。
  • 一个用于调试的项目(只有调试配置)和一个发布项目(只有发布配置),但这感觉像是一个障碍。

在 Visual Studio 2008 中实现配置特定引用的任何更简洁的方法?

最佳答案

我通常做的是根据配置将所有项目的输出路径设置到相同的位置。例如,对于发布构建,一切都进入/path/to/Release,对于调试,一切都进入/path/to Debug。然后我手动编辑项目文件以包含一个单独的目标文件,其中包含如下内容:

edit 展示了如何使用条件来选择带有前缀的 debug/release dll

<-- file myDll.targets -->
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >
<ItemGroup Condition=" '$(Configuration)' == 'Debug' ">
<Reference Include="myDll_d">
<Private>False</Private>
</Reference>
</ItemGroup>
<ItemGroup Condition=" '$(Configuration)' == 'Release' ">
<Reference Include="myDll">
<Private>False</Private>
</Reference>
</ItemGroup>
</Project>

然后在需要引用这个dll的工程中包含targets文件:

<Import Project="myDll.targets"/>

由于 Private=false msbuild 不会尝试复制任何内容,它只会查找 myDll.dll 并将在输出路径中找到它。

这不是特别干净,但确实有效。还可以修改目标文件以引用不同的平台 (x86/x64)。

您的第一个想法可能是最常用的想法,因为它需要更少的麻烦 - 除了确实项目应该在同一个解决方案中(据我所知);

关于visual-studio - Visual Studio 2008 是否支持特定于配置(调试/发布版本)的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7055985/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com