问题描述:

  需要使用的C++类库区分x64和x86版本,但C#项目只能使用一种需要编码X64、X86版本,有不能在编译时经常改引用DLL,能不能再编译时根据编译选项自动选择dll库版本并复制到输出路径

解决:

  1.准备dll库编译好的两个版本;

  2.在C#项目中引用随编一个(一般x64,x86引用文件都一致);  

  3.卸载该项目后,修改C#工程文件(*.csproj)

    3.1 找到自动生成的引用节点

<Reference Include="CefSharp">
<HintPath>DLLs\x64\CefSharp.dll</HintPath>
</Reference>
3.2 添加引用条件   Condition=" '$(Platform)' == 'x64'"
<Reference Include="CefSharp" Condition=" '$(Platform)' == 'x64'">
<HintPath>DLLs\x64\CefSharp.dll</HintPath>
</Reference>
3.3 同理X86版本进行修改
<Reference Include="CefSharp" Condition=" '$(Platform)' == 'x86'">
<HintPath>DLLs\x86\CefSharp.dll</HintPath>
</Reference>
4.保存后重新加载该工程即可;

Note:

  1.貌似也可以动态指定路径:

<Reference Include="CefSharp.Core">
<HintPath>DLLs\$(Platform)\CefSharp.Core.dll</HintPath>
</Reference>
2.添加自动复制脚本
2.1 添加targets文件,在该文件中定义所含目标文件(文件内容):
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"><ItemGroup Condition="Exists('$(MSBuildThisFileDirectory)\DLLs\x86')"><CefDlls32 Include="$(MSBuildThisFileDirectory)\DLLs\x86\*.*" /></ItemGroup><ItemGroup Condition="Exists('$(MSBuildThisFileDirectory)\DLLs\x64')"><CefDlls64 Include="$(MSBuildThisFileDirectory)\DLLs\x64\*.*" /></ItemGroup>
</Project>

  2.2 添加props文件,并在文件中写入复制信息以及路径:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Target Name="CefSharpCopyDlls86" BeforeTargets="AfterBuild" Condition="'$(Platform)' == 'x86'"><Message Importance="high" Text="Copying cef.dlls x86 binaries" /><Copy SourceFiles="@(CefDlls32)" DestinationFolder="$(TargetDir)" SkipUnchangedFiles="true" />  </Target>  <Target Name="CefSharpCopyDlls64" BeforeTargets="AfterBuild" Condition="'$(Platform)' == 'x64'"><Message Importance="high" Text="Copying cef.dlls x64 binaries" /><Copy SourceFiles="@(CefDlls64)" DestinationFolder="$(TargetDir)" SkipUnchangedFiles="true" /></Target>  </Project>

  2.3 在项目文件中导入两个文件,ok;

<Import Project="DLLs\CefDlls.Native.props" Condition="Exists('DLLs\CefDlls.Native.props')" />
<Import Project="Dlls\cef.dlls.targets" Condition="Exists('Dlls\cef.dlls.targets')" />

2.4 验证成功,编译输出信息;

转载于:https://www.cnblogs.com/forevertime/p/7458899.html

C#项目同时使用x86和x64版本dll库相关推荐

  1. 模块“CHUSBDLL.DLL.dll“可能与您正在运行的Windows版本不兼容。检查该模块是否与regsvr32.exe的x86或x64版本兼容 【已解决】

    1.点击链接下载CHUSBDLL.DLL 2.把CHUSBDLL.DLL拷贝到系统的system32文件夹下 3.开始->运行->regsvr32 CHUSBDLL.DLL 因为我的系统是 ...

  2. [Qt]VS2015下Qt项目的x86和x64版本编译

    原创文章,欢迎转载.转载请注明:转载自 祥的博客 原文链接:https://blog.csdn.net/humanking7/article/details/85883828 文章目录 @[toc] ...

  3. VS2015命令行工具X86和X64版本

    今天使用vs命令行编译GDAL时,发现一坑,特此记下. 注意VS2015命令行工具有x86,x64以及其他多个兼容版本,具体详见下图. 我们一般使用VS命令行工具时,通过VS2015界面---> ...

  4. VS2017 编译 PDFium 源码,生成 x86、x64,动态库、静态库

    PDFium 源码编译 一.下载源码:         1.下载 depot_tools 源码:                https://chromium.googlesource.com/ch ...

  5. python37.dll可能与您正在运行_模块可能与您正在运行的Windows版本不兼容。检查该模块是否与regsvr32.exe的x86或x64...

    今天一个网友群里留言,他win8的系统,下载我们的软件无法正常运行,原来他的win8是64位的系统,而我们的软件是32位,而且这个软件还需要一个dll文件,没有注册就无法使用,参考下面的方法解决了 1 ...

  6. 从X86向X64迁移的一点心得

    X64平台越来越普及,目前一些分析软件多推出了X64版本,而我们的工具集项目同样也有X64版本.我们基于同一套标准C++代码实现了Windows和Linux的跨平台,这几天从X86平台向X64平台迁移 ...

  7. VS2015+Qt5.9.4 项目x86版本转x64版本编译

    很多人首次改变编译平台,x86转x64时都会这样: 选择Qt Options, 改变默认Qt版本为64,此时发现平台版本还是x86 然后你可能会选择项目,然后右键 找到Qt Project Setti ...

  8. 如何检查Windows Vista , XP和2003系统是32位或64位( x86或x64 )版本

    您可能会收到一个电脑作为礼物,以及想要找出系统是否设置了一个32位或64位(微软标签,他们作为x86或x64 )为基础的作业系统,这需要特别建造的应用软件. ) . For computer or P ...

  9. msvc2017配置qt5.12.8 x86和x64库版本切换

    1. QT vs Tool安装可以直接去qt官网下载 http://download.qt.io/archive/vsaddin/ 插件版本高,但不一定好用,而且有BUG 我下载了2.5.1版本的插件 ...

最新文章

  1. python自动测试p-python自动化测试报告(excel篇)
  2. 密度泛函DFT与神经网络
  3. 全球及中国医用敷料市场销售前景与竞争格局研究报告2022版
  4. PHP学习笔记 - 进阶篇(7)
  5. Cow Picnic(POJ-3256)
  6. 巴菲特将退休并把公司交给网红接管?被一封信恶搞...
  7. 蓝桥杯 ADV-71 算法提高 判断回文
  8. 如何修改Qt Creator的界面语言
  9. python3 单例模式_当python,单例模式,多例模式,一次初始化遇到一起
  10. linux shell脚本 检查IP地址格式
  11. Spring Boot项目中使用 TrueLicense 生成和验证License(服务器许可)
  12. 犯贱报(一张浓缩大学生活的..)
  13. 电路基础和电路模拟——复习
  14. 中国 各大银行bankCode 开户行代码和名称 高清银行图标
  15. ensp下载与安装问题
  16. gta5服务器端文件夹,GTA5路径在steam哪个文件夹里面
  17. Unity发布WebGL遇到的问题
  18. [代码审计]信呼协同办公系统2.2存在文件上传配合云处理函数组合拳RCE
  19. 通过短信网关发送Wappush消息
  20. 全球媒体网关行业收入预计2028年达到19.442亿美元

热门文章

  1. apex创建快捷方式_【Apex Launcher】设置入门【应用教程】
  2. POJ2135-Farm Tour(固定流量的最小费用流)
  3. 5种常见的电子商务模式
  4. ■天籟,來自台灣的聲音。
  5. 抽象abstract和接口详解
  6. 基于Android的财务系统
  7. php护卫神网站日志,联机日志主控中心-使用简介_护卫神
  8. 一个优秀项目管理师和系统分析师的75条经验(转载)
  9. VSCode上搭建MDK开发环境
  10. Kindeditor上传漏洞复现(CVE-2017-1002024)