我有一个本机 C++ 项目,其中包含一个 C++/CLI 文件(唯一使用 /CLI 编译的文件),我想添加对 C# DLL 的引用。
有单独的版本用于调试和发布,但是我似乎只能添加一个适用于所有配置的参考。引用搜索路径对话框包含一个警告,如果我尝试使用任何 $ConfigurationName 类型参数,它们将仅引用项目中的第一个配置。
所以我目前的想法是:
- 将两个项目合并到一个解决方案下,并添加对“项目”而不是 DLL 程序集的引用。我的理解是 Visual Studio 随后将匹配配置。不理想,因为我的项目和 DLL 由不同的区域“拥有”。
- 一个用于调试的项目(仅具有调试配置)和一个发布项目(仅具有发布配置),但这感觉就像一个困境。
在 Visual Studio 2008 中是否有更简洁的方法来实现配置特定引用?
我通常做的是根据配置将所有项目的输出路径设置到同一位置。例如,对于发布版本,所有内容都放入 /path/to/Release 中,对于调试版本,则所有内容都放入 /path/to Debug 中。然后我手动编辑项目文件以包含一个单独的目标文件,其中包含如下内容:
edit展示如何使用条件来选择带有前缀的调试/发布 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)。
您的第一个想法可能是最常用的,因为它需要更少的麻烦 - 除了项目确实应该在相同的解决方案中(据我所知);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)