我的应用程序有几个配置可以进行调试/发布构建,还有32位和64位构建.现在使用32位和64位构建,我需要引用不同的dll(即使用x86构建的那些和使用x64构建的那些),但引用似乎对我的项目是全局的,并且不依赖于配置.现在,当我从32位切换到64位构建时,我总是必须交换引用(反之亦然).为不同配置实现不同引用的适当方法是什么?
解决方法
这可以通过对项目文件的一些手动操作来完成.
首先,您需要右键单击该项目,然后单击“卸载项目”.然后再次右键单击它并选择编辑[项目名称].
当它在编辑器中加载时,您将看到您的refences的各种条目:
<ItemGroup> <Reference Include="System.Xml" /> <Reference Include="WindowsBase"> <requiredTargetFramework>3.0</requiredTargetFramework> </Reference> <Reference Include="PresentationCore"> <requiredTargetFramework>3.0</requiredTargetFramework> </Reference> <Reference Include="PresentationFramework"> <requiredTargetFramework>3.0</requiredTargetFramework> </Reference> <Reference Include="Microsoft.Practices.ServiceLocation,Version=1.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35,processorArchitecture=MSIL"> <SpecificVersion>False</SpecificVersion> <HintPath>..\Common\Lib\3rdParty\Prism\4.0\Desktop\Microsoft.Practices.ServiceLocation.dll</HintPath> </Reference> </ItemGroup>
请注意,这些都在ItemGroup节点内.
您现在可以执行一些魔术…将一个表达式添加到您的ItemGroup中,以便仅在构建配置具有某种位数时使用它:
<ItemGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'"> <!-- these are the references used when there is a Release x86 build --> <Reference Include="System.Xml" /> </ItemGroup>
请注意,无法通过UI执行此操作,因此您必须手动管理这些参考列表(例如,如果您需要添加其他参考).
还要注意,这不是一个黑客…它只是使用features of MSBuild之一(VS用来构建你的项目).你可以使用你喜欢的任何表达式来拥有尽可能多的这些ItemGroup列表 – 如果它没有表达式,那么它将始终包含在构建中.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。