程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> Visual Studio中依據體系辨別援用64位、32位DLL靜態庫文件的設置裝備擺設辦法

Visual Studio中依據體系辨別援用64位、32位DLL靜態庫文件的設置裝備擺設辦法

編輯:C#入門知識

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的裝置法式的制造不太好使,我不太清晰,觸及到這方面的同窗,再細心查檢查。

不外,我這裡供給一個可行的處理計劃,那就是不要將全部項目制造到裝置法式中,只是制造一個最根本的裝置法式,然後經由過程進級來包管最新。

假如是在沒有收集的情況中,那也能夠將編譯產出零丁解壓到裝置目次下,以免將全部處理計劃制造成裝置包。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved