Visual Studio中根据系统区分引用64位、32位DLL动态库文件的配置方法

所属分类: 软件编程 / C#教程 阅读数: 92
收藏 0 赞 0 分享

原来使用Win7的32位系统,进行C#工程的开发,后来重装系统,换成了win7的64位系统

调试原来的工程,由于在其中引用了“SQLite”的32位的dll,导致在64为位下程序无法运行(但是编译可以通过)

后来通过修改工程文件(.csproj),在其中设置引用的条件,解决了问题

打开引用了SQLite的工程(例如叫做info)的工程文件(info.csproj),找到对SQLite引用的语句,类似如下的代码

复制代码 代码如下:

<Reference Include="System.Data.SQLite, Version=1.0.65.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\libs\SQLite\System.Data.SQLite.dll</HintPath>
</Reference>

这里指定了引用的库的名称,路径等信息,将上面的配置内容,修改如下

复制代码 代码如下:

<Reference Condition=" '$(Platform)' == 'AnyCPU' " Include="System.Data.SQLite, Version=1.0.65.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\libs\SQLite\System.Data.SQLite.dll</HintPath>
</Reference>

只是增加了一个Condition的限制条件,表示只在平台类型位AnyCPU的时候,按照这个路径引用dll

复制上面的配置内容,并按照如下进行修改,设置在x64平台的生成时引用的dll路径

复制代码 代码如下:
<Reference Condition=" '$(Platform)' == 'x64' " Include="System.Data.SQLite.x64, Version=1.0.65.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\libs\SQLite\System.Data.SQLite.x64.dll</HintPath>
</Reference>

最后,说一下怎样在VS中设置不同的生成平台

在工具栏的“解决方案平台”(一般这里会显示着“Any CPU”)下拉框中选择“配置管理器”,在其中添加想要的平台类型(一般就在x64,x86,Itanium中选择,不要修改默认名称)

然后在窗口下部的“项目上下文中”,在对应的项目(这里仅info项目,其他的保持AnyCPU不变)中修改平台类型(修改为X64)

然后,配置到这里,可能在项目文件中,对应新增的平台类型的一些设置不完整(我遇到编译的时候提示“OutputPath没有设置”),这个时候,进入vs的项目属性界面,稍微修改一下(改成别的,保存,再改回来)这些设置

ok,这个时候,应该就可以根据平台的类型不同,引用到对应的dll了,

在网上找到的资料说,这种方法对于msi的安装程序的制作不太好使,我不太清楚,涉及到这方面的同学,再仔细查查看。

不过,我这里提供一个可行的解决方案,那就是不要将整个项目制作到安装程序中,只是制作一个最基本的安装程序,然后通过升级来保证最新。

如果是在没有网络的环境中,那也可以将编译产出单独解压到安装目录下,以避免将整个解决方案制作成安装包。

更多精彩内容其他人还在看

C#抽象类与抽象方法详解

这篇文章主要为大家详细介绍了C#抽象类与抽象方法的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

C#代码实现扑克牌排序的几种方式

今天小编就为大家分享一篇关于C#代码实现扑克牌排序,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

C#泛型概念的简介与泛型的使用

今天小编就为大家分享一篇关于C#泛型概念的简介与泛型的使用,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

C# 7.0 使用下划线忽略使用的变量的原因分析

这篇文章主要介绍了C# 7.0 使用下划线忽略使用的变量的原因浅析,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C# 中使用正则表达式匹配字符的含义

正则表达式的作用用来描述字符串的特征。本文重点给大家介绍C# 中使用正则表达式匹配字符的含义,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
收藏 0 赞 0 分享

C# Dictionary和SortedDictionary的简介

今天小编就为大家分享一篇关于C# Dictionary和SortedDictionary的简介,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

C#中SQL Command的基本用法

今天小编就为大家分享一篇关于C#中SQL Command的基本用法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

C#使用SQL DataReader访问数据的优点和实例

今天小编就为大家分享一篇关于C#使用SQL DataReader访问数据的优点和实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

C#使用SQL Dataset数据集代码实例

今天小编就为大家分享一篇关于的文章,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

C#使用SQL DataAdapter数据适配代码实例

今天小编就为大家分享一篇关于C#使用SQL DataAdapter数据适配代码实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享
查看更多