Visual Studio中根據(jù)系統(tǒng)區(qū)分引用64位、32位DLL動(dòng)態(tài)庫(kù)文件的配置方法
原來(lái)使用Win7的32位系統(tǒng),進(jìn)行C#工程的開(kāi)發(fā),后來(lái)重裝系統(tǒng),換成了win7的64位系統(tǒng)
調(diào)試原來(lái)的工程,由于在其中引用了“SQLite”的32位的dll,導(dǎo)致在64為位下程序無(wú)法運(yùn)行(但是編譯可以通過(guò))
后來(lái)通過(guò)修改工程文件(.csproj),在其中設(shè)置引用的條件,解決了問(wèn)題
打開(kāi)引用了SQLite的工程(例如叫做info)的工程文件(info.csproj),找到對(duì)SQLite引用的語(yǔ)句,類似如下的代碼
<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>
這里指定了引用的庫(kù)的名稱,路徑等信息,將上面的配置內(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>
最后,說(shuō)一下怎樣在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沒(méi)有設(shè)置”),這個(gè)時(shí)候,進(jìn)入vs的項(xiàng)目屬性界面,稍微修改一下(改成別的,保存,再改回來(lái))這些設(shè)置
ok,這個(gè)時(shí)候,應(yīng)該就可以根據(jù)平臺(tái)的類型不同,引用到對(duì)應(yīng)的dll了,
在網(wǎng)上找到的資料說(shuō),這種方法對(duì)于msi的安裝程序的制作不太好使,我不太清楚,涉及到這方面的同學(xué),再仔細(xì)查查看。
不過(guò),我這里提供一個(gè)可行的解決方案,那就是不要將整個(gè)項(xiàng)目制作到安裝程序中,只是制作一個(gè)最基本的安裝程序,然后通過(guò)升級(jí)來(lái)保證最新。
如果是在沒(méi)有網(wǎng)絡(luò)的環(huán)境中,那也可以將編譯產(chǎn)出單獨(dú)解壓到安裝目錄下,以避免將整個(gè)解決方案制作成安裝包。
相關(guān)文章
Unity工具類ScrollView實(shí)現(xiàn)拖拽滑動(dòng)翻頁(yè)
這篇文章主要為大家詳細(xì)介紹了Unity工具類ScrollView實(shí)現(xiàn)拖拽滑動(dòng)翻頁(yè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04C#聯(lián)合VisionPro實(shí)現(xiàn)TCP/IP通信詳解
TCP/IP(傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議)是一組用于在網(wǎng)絡(luò)上進(jìn)行通信的通信協(xié)議,本文主要為大家詳細(xì)介紹了C#如何聯(lián)合VisionPro實(shí)現(xiàn)TCP/IP通信,希望對(duì)大家有所幫助2024-02-02C# 創(chuàng)建Excel氣泡圖的實(shí)例代碼
這篇文章主要介紹了C# 創(chuàng)建Excel氣泡圖的實(shí)例代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01C#實(shí)現(xiàn)判斷文件夾存在與否并創(chuàng)建文件夾的方法
這篇文章主要介紹了C#實(shí)現(xiàn)判斷文件夾存在與否并創(chuàng)建文件夾的方法,涉及C#針對(duì)文件及目錄的判斷與創(chuàng)建操作相關(guān)技巧,需要的朋友可以參考下2017-02-02