以下是我在上一个项目中所做的工作,该项目需要手动编辑.csproj文件。对于不同的二进制文件,您还需要单独的目录,最好是彼此的兄弟目录,并且与目标平台同名。
将单个平台的引用添加到项目后,在文本编辑器中打开.csproj。在第一次之前
<ItemGroup>
中的元素
<Project>
元素,添加以下代码,这将有助于确定在哪个平台上运行(和构建)。
<!-- 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)
只考虑项目的目标平台
-
更改平台确定逻辑以适合当前计算机,这样就不会构建/引用要在32位平台上执行的64位二进制文件。
我本来是为工作中的一个内部Wiki写的,但是,我修改了它并发布了
full process to my blog
,如果您对详细的分步说明感兴趣。