当前位置 : 主页 > 手机开发 > 其它 >

使.NET引用配置依赖

来源:互联网 收集:自由互联 发布时间:2021-06-22
我的应用程序有几个配置可以进行调试/发布构建,还有32位和64位构建.现在使用32位和64位构建,我需要引用不同的dll(即使用x86构建的那些和使用x64构建的那些),但引用似乎对我的项目是全
我的应用程序有几个配置可以进行调试/发布构建,还有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列表 – 如果它没有表达式,那么它将始终包含在构建中.

网友评论