1. 程式人生 > >Visual Studio中根據系統區分引用64位、32位DLL動態庫文件的配置方法

Visual Studio中根據系統區分引用64位、32位DLL動態庫文件的配置方法

問題 eight 找到 下拉 float c# more 遇到 語法

原來使用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的安裝程序的制作不太好使,我不太清楚,涉及到這方面的同學,再仔細查查看。

不過,我這裏提供一個可行的解決方案,那就是不要將整個項目制作到安裝程序中,只是制作一個最基本的安裝程序,然後通過升級來保證最新。

如果是在沒有網絡的環境中,那也可以將編譯產出單獨解壓到安裝目錄下,以避免將整個解決方案制作成安裝包。

除聲明外,跑步客文章均為原創,轉載請以鏈接形式標明本文地址
Visual Studio中根據系統區分引用64位、32位DLL動態庫文件的配置方法

本文地址: http://www.paobuke.com/develop/c-develop/pbk23550.html






相關內容

技術分享圖片C#判斷字符串是否是int/double(實例)技術分享圖片C# 中DateTime 的使用技巧匯總技術分享圖片Windows系統中使用C#編寫藍牙通信程序的簡單實例技術分享圖片深入解析C#中的泛型類與泛型接口
技術分享圖片C#自定義控件添加右鍵菜單的方法技術分享圖片C#實現將選中復選框的信息返回給用戶的方法技術分享圖片C#基礎語法:方法參數詳解技術分享圖片c#編寫的番茄鐘倒計時器代碼

Visual Studio中根據系統區分引用64位、32位DLL動態庫文件的配置方法