Visual Studio中依據體系辨別援用64位、32位DLL靜態庫文件的設置裝備擺設辦法。本站提示廣大學習愛好者:(Visual Studio中依據體系辨別援用64位、32位DLL靜態庫文件的設置裝備擺設辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是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的裝置法式的制造不太好使,我不太清晰,觸及到這方面的同窗,再細心查檢查。
不外,我這裡供給一個可行的處理計劃,那就是不要將全部項目制造到裝置法式中,只是制造一個最根本的裝置法式,然後經由過程進級來包管最新。
假如是在沒有收集的情況中,那也能夠將編譯產出零丁解壓到裝置目次下,以免將全部處理計劃制造成裝置包。