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

原来使用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的安装程序的制作不太好使,我不太清楚,涉及到这方面的同学,再仔细查查看。

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

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

除声明外,跑步客文章均为原创,转载请以链接形式标明本文地址
  Visual Studio中根据系统区分引用64位、32位DLL动态库文件的配置方法

本文地址:  http://www.paobuke.com/develop/c-develop/pbk23550.html

相关内容

C#判断字符串是否是int/double(实例)

C# 中DateTime 的使用技巧汇总

Windows系统中使用C#编写蓝牙通信程序的简单实例

深入解析C#中的泛型类与泛型接口


C#自定义控件添加右键菜单的方法

C#实现将选中复选框的信息返回给用户的方法

C#基础语法:方法参数详解

c#编写的番茄钟倒计时器代码

时间: 2024-10-12 16:40:28

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

zend studio中ctrl+鼠标左键无法转到类或函数定义文件的解决方法

zend studio中ctrl+鼠标左键无法转到类或函数定义文件的解决方法: zendstudio 时常 无法ctrl+左键 跳转 到函数源 代码 是创建工程的方式造成的,很有可能是把先前存在的工程以file的形式导入, zendstudio 就把工程当作文档来处理了.解决的办法是: 右键点击工程->configure->add php support 然后系统会自动rebuild工程/workspace.至此,问题解决! 如果你想要zendstudio支持javascript的语法高亮和流

VC中实现dll动态库文件加载

例如有动态库:math.h; math.dll; math.lib1.系统路径中包含math.dll路径.2.VC工程中,“项目”>”属性“>”C/C++“>”常规“>”附加包含目录“,加入math.h所在路径.3.VC工程中,“项目”>”属性“>”连接器“>”常规“>”附加库目录“,加入math.lib所在路径.4.VC工程中,“项目”>”属性“>”连接器“>”输入“>”附加依赖项“,加入"math.lib".

Visual Studio 中的 .NET Framework 类库

Visual Studio 中的 .NET Framework 类库 .NET Framework 类库由命名空间组成.每个命名空间都包含可在程序中使用的类型:类.结构.枚举.委托和接口. 当您在 Visual Studio 中创建 Visual Basic 或 Visual C# 项目时,已经引用了最常用的基类 DLL(程序集).但是,如果您需要使用尚未引用的 DLL 中的类型,则需向此 DLL 添加引用.有关更多信息,请参见添加和移除引用. 以下主题提供了下列信息: 每个功能区域的最重要命名

Visual Studio中C++工程的环境配置方法

在Visual Studio的C++工程设置 1.添加工程的头文件目录:工程---属性---配置属性---c/c++---常规---附加包含目录. 2.添加文件引用的lib静态库路径:工程---属性---配置属性---链接器---常规---附加库目录. 3.添加工程引用的lib文件名:工程---属性---配置属性---链接器---输入---附加依赖项 4.添加工程引用的dll动态库:把引用的dll放到工程的可执行文件所在的目录下. 5.配置输出目录:工程---属性---配置属性---常规---输

在Visual&#160;Studio中调试C/C++&#160;mexFunction文件

C/C++ MEX文件:也称为MEX源码文件,就是就是普通的fortran/C/C++文件,只是其中定义了一个mexFunction的接口,用于和MATLAB通讯,使用mex()函数可以将其编译为MATLAB MEX文件.至于如何书写mex源码文件,您可以看下MATLAB的帮助文档! MATLAB MEX文件:也称为MEX二进制文件,是一种动态链接库,可以在MATLAB像普通函数一样直接调用或运行,windows平台下的扩展名为mexw32或者mexw64.使用mex()可以将MEX源码文件编译

Visual Studio中Debug与Release以及x86、x64、Any CPU的区别

Visual Studio中Debug与Release的区别: 在Visual Studio中,编译模式有2种:Debug与Release.这也是默认的两种方式,在新建一个project的时候,就已经存在这两种模式供选择. Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.      Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用. SO:      一般都是用Release来打包发布程序,因为Re

Visual Studio中的环境变量(以Visual Studio 2013为例)

前言 本文总结了Visual Studio中常见的环境变量及其在组织解决方案.工程中的作用. 注:本文使用的是Visual Studio 2013,由于作者主要从事C/C++开发,所以是以Visual C++的工作环境配置来描述. 什么是vs的环境变量? 先看图吧,图中以美元符号$开头 + 一对括号,这样进行引用的就是我所谓的环境变量, 图中出现的几个环境变量含义如下: 环境变量名 含义 $(SolutionDir) 解决方案目录:即.sln文件所在路径 $(Configuration) 当前的

Visual Studio 中的单元测试 UNIT TEST

原文:Visual Studio 中的单元测试 UNIT TEST 注:本文系作者原创,可随意转载,但请注明出处.如实在不愿注明可留空,强烈反对更改原创出处. TDD(Test-Driven Development) 测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论.TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码.单元测试是最基本的测试步骤.位于整个产品开发流程V模型的最底部.大致如图,在各种开发流程中RA&PSD完成后,无需底层基础,

在 Visual Studio中 将 Objective-C 编译为 C++

快速使用Romanysoft LAB的技术实现 HTML 开发Mac OS App,并销售到苹果应用商店中. <HTML开发Mac OS App 视频教程> 土豆网同步更新:http://www.tudou.com/plcover/VHNh6ZopQ4E/ 百度网盘同步:http://pan.baidu.com/s/1jG1Q58M 分享  [中文纪录片]互联网时代   http://pan.baidu.com/s/1qWkJfcS 官方QQ群:(申请加入,说是我推荐的) App实践出真知 4