Visual Studio中根據(jù)系統(tǒng)區(qū)分引用64位、32位DLL動態(tài)庫文件的配置方法
原來使用Win7的32位系統(tǒng),進行C#工程的開發(fā),后來重裝系統(tǒng),換成了win7的64位系統(tǒng)
調試原來的工程,由于在其中引用了“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路徑
<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,這個時候,應該就可以根據(jù)平臺的類型不同,引用到對應的dll了,
在網(wǎng)上找到的資料說,這種方法對于msi的安裝程序的制作不太好使,我不太清楚,涉及到這方面的同學,再仔細查查看。
不過,我這里提供一個可行的解決方案,那就是不要將整個項目制作到安裝程序中,只是制作一個最基本的安裝程序,然后通過升級來保證最新。
如果是在沒有網(wǎng)絡的環(huán)境中,那也可以將編譯產(chǎn)出單獨解壓到安裝目錄下,以避免將整個解決方案制作成安裝包。
相關文章
Unity工具類ScrollView實現(xiàn)拖拽滑動翻頁
這篇文章主要為大家詳細介紹了Unity工具類ScrollView實現(xiàn)拖拽滑動翻頁,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-04-04C#聯(lián)合VisionPro實現(xiàn)TCP/IP通信詳解
TCP/IP(傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議)是一組用于在網(wǎng)絡上進行通信的通信協(xié)議,本文主要為大家詳細介紹了C#如何聯(lián)合VisionPro實現(xiàn)TCP/IP通信,希望對大家有所幫助2024-02-02C#實現(xiàn)判斷文件夾存在與否并創(chuàng)建文件夾的方法
這篇文章主要介紹了C#實現(xiàn)判斷文件夾存在與否并創(chuàng)建文件夾的方法,涉及C#針對文件及目錄的判斷與創(chuàng)建操作相關技巧,需要的朋友可以參考下2017-02-02