Visual Studio中根據(jù)系統(tǒng)區(qū)分引用64位、32位DLL動(dòng)態(tài)庫文件的配置方法
原來使用Win7的32位系統(tǒng),進(jìn)行C#工程的開發(fā),后來重裝系統(tǒng),換成了win7的64位系統(tǒng)
調(diào)試原來的工程,由于在其中引用了“SQLite”的32位的dll,導(dǎo)致在64為位下程序無法運(yùn)行(但是編譯可以通過)
后來通過修改工程文件(.csproj),在其中設(shè)置引用的條件,解決了問題
打開引用了SQLite的工程(例如叫做info)的工程文件(info.csproj),找到對(duì)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>
這里指定了引用的庫的名稱,路徑等信息,將上面的配置內(nèi)容,修改如下
<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>
只是增加了一個(gè)Condition的限制條件,表示只在平臺(tái)類型位AnyCPU的時(shí)候,按照這個(gè)路徑引用dll
復(fù)制上面的配置內(nèi)容,并按照如下進(jìn)行修改,設(shè)置在x64平臺(tái)的生成時(shí)引用的dll路徑
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\libs\SQLite\System.Data.SQLite.x64.dll</HintPath>
</Reference>
最后,說一下怎樣在VS中設(shè)置不同的生成平臺(tái)
在工具欄的“解決方案平臺(tái)”(一般這里會(huì)顯示著“Any CPU”)下拉框中選擇“配置管理器”,在其中添加想要的平臺(tái)類型(一般就在x64,x86,Itanium中選擇,不要修改默認(rèn)名稱)
然后在窗口下部的“項(xiàng)目上下文中”,在對(duì)應(yīng)的項(xiàng)目(這里僅info項(xiàng)目,其他的保持AnyCPU不變)中修改平臺(tái)類型(修改為X64)
然后,配置到這里,可能在項(xiàng)目文件中,對(duì)應(yīng)新增的平臺(tái)類型的一些設(shè)置不完整(我遇到編譯的時(shí)候提示“OutputPath沒有設(shè)置”),這個(gè)時(shí)候,進(jìn)入vs的項(xiàng)目屬性界面,稍微修改一下(改成別的,保存,再改回來)這些設(shè)置
ok,這個(gè)時(shí)候,應(yīng)該就可以根據(jù)平臺(tái)的類型不同,引用到對(duì)應(yīng)的dll了,
在網(wǎng)上找到的資料說,這種方法對(duì)于msi的安裝程序的制作不太好使,我不太清楚,涉及到這方面的同學(xué),再仔細(xì)查查看。
不過,我這里提供一個(gè)可行的解決方案,那就是不要將整個(gè)項(xiàng)目制作到安裝程序中,只是制作一個(gè)最基本的安裝程序,然后通過升級(jí)來保證最新。
如果是在沒有網(wǎng)絡(luò)的環(huán)境中,那也可以將編譯產(chǎn)出單獨(dú)解壓到安裝目錄下,以避免將整個(gè)解決方案制作成安裝包。
相關(guān)文章
基于C#代碼實(shí)現(xiàn)九宮格算法橫豎都等于4
這篇文章主要介紹了基于C#代碼實(shí)現(xiàn)九宮格算法橫豎都等于4的相關(guān)資料,需要的朋友可以參考下2016-01-01
C#使用Stopwatch實(shí)現(xiàn)計(jì)時(shí)功能
在 C# 中,Stopwatch 類是用于測(cè)量經(jīng)過的時(shí)間的工具類,提供了高精度的計(jì)時(shí)功能,本文主要介紹了C#如何使用Stopwatch實(shí)現(xiàn)計(jì)時(shí)功能,需要的可以參考下2024-03-03

