我有一个32/64位版本的项目,并且有相应的32/64位依赖项.我希望能够切换配置并使用正确的引用,但我不知道如何告诉Visual Studio使用与体系 struct 相关的依赖项.
也许我做得不对,但我希望能够在配置下拉列表中在x86和x64之间切换,并使引用的DLL具有正确的位.
我有一个32/64位版本的项目,并且有相应的32/64位依赖项.我希望能够切换配置并使用正确的引用,但我不知道如何告诉Visual Studio使用与体系 struct 相关的依赖项.
也许我做得不对,但我希望能够在配置下拉列表中在x86和x64之间切换,并使引用的DLL具有正确的位.
下面是我在前一个项目中所做的工作,它需要手动编辑.csproj文件.对于不同的二进制文件,您还需要单独的目录,理想情况下它们是彼此的同级文件,并且与您的目标平台同名.
将单个平台的引用添加到项目后,在文本编辑器中打开.csproj.在<Project>
元素内的前<ItemGroup>
个元素之前,添加以下代码,这将有助于确定您正在哪个平台上运行(和构建).
<!-- Properties group for Determining 64bit Architecture -->
<PropertyGroup>
<CurrentPlatform>x86</CurrentPlatform>
<CurrentPlatform Condition="'$(PROCESSOR_ARCHITECTURE)'=='AMD64' or '$(PROCESSOR_ARCHITEW6432)'=='AMD64'">AMD64</CurrentPlatform>
</PropertyGroup>
然后,对于特定于平台的引用,进行如下更改:
<ItemGroup>
<Reference Include="Leadtools, Version=16.5.0.0, Culture=neutral, PublicKeyToken=9cf889f53ea9b907, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Lib\Leadtools\$(CurrentPlatform)\Leadtools.dll</HintPath>
</Reference>
<Reference Include="Leadtools.Codecs, Version=16.5.0.0, Culture=neutral, PublicKeyToken=9cf889f53ea9b907, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Lib\Leadtools\$(CurrentPlatform)\Leadtools.Codecs.dll</HintPath>
</Reference>
<Reference Include="Leadtools.ImageProcessing.Core, Version=16.5.0.0, Culture=neutral, PublicKeyToken=9cf889f53ea9b907, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Lib\Leadtools\$(CurrentPlatform)\Leadtools.ImageProcessing.Core.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Data.Entity" />
<!-- Other project references -->
</ItemGroup>
请注意$(CurrentPlatform)
属性的使用,我们在上面定义了它.相反,您可以使用条件来表示要为哪个平台包含哪些程序集.你还需要:
$(PROCESSOR_ARCHITEW6432)
和$(PROCESSOR_ARCHITECTURE)
替换为$(Platform)
,以仅考虑项目的目标平台我最初是为工作中的一个内部Wiki编写的,但是,如果您对详细的分步说明感兴趣,我已经修改了它并发布了full process to my blog.