我有一个带有一个C ++ / CLI文件的原生C ++项目(用/ CLI编译的唯一文件),我想添加对C#DLL的引用。
调试和发布有单独的版本,但我似乎只能添加一个适用于所有配置的引用。参考搜索路径对话框包含一个警告,如果我尝试使用任何$ ConfigurationName类型参数,它们将只引用项目中的第一个配置。
所以我目前的想法是:
在Visual Studio 2008中实现配置特定引用的任何更简洁的方法?
答案 0 :(得分:2)
我通常做的是根据配置将所有项目的输出路径设置为相同的位置。例如,对于发布版本,所有内容都会进入/ path / to / Release以及Debug to / path / to Debug。然后我手动编辑项目文件以包含一个包含以下内容的单独目标文件:
编辑显示如何使用条件选择带前缀的调试/发布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的项目中包含目标文件:
<Import Project="myDll.targets"/>
由于Private=false
msbuild不会尝试复制任何东西,它只会查找myDll.dll并在输出路径中找到它。
这不是特别干净但确实有效。目标文件也可以修改为引用不同的平台(x86 / x64)。
你的第一个想法可能是最常用的,因为它需要更少的麻烦 - 除了确实项目应该在同一个解决方案中(据我所知);