iT邦幫忙

DAY 4
1

發開相關系列 第 4

NuGet系列-安裝特定版本Package

  • 分享至 

  • xImage
  •  

有時可能因為專案是使用較舊版本的Assembly,使用NuGet GUI不能選版本只能下載最新版Package安裝,新版Package中的Assmebly可能與你的專案不相容,使你的專案無法執行,但又不想自己手動去下載Assembly,手動加入參考,那該怎麼辦呢?
雖然NuGet的GUI(寫文時是1.5版)還沒有提供,但是Command-Line指令卻有支援,遇到這種情況先將用Command-Line指令安裝nupkg吧。
同步發表於:http://www.dotblogs.com.tw/wadehuang36/archive/2011/10/14/nuget-install-package.aspx

最近在使用NHibernate,NHibernate有不少相關的Assembly,如Spring.Net整合的NHibernate.Spring、與Common.Logging整合的NHibernate.Logging,不巧的是NHibernate.Spring最新版限定只能使用NHibernate 3.1.0.4000,而NHibernate.Logging最新版是使用NHibernate 3.2.0.4000,而專案要用Spring.Net的關係是使用NHibernate 3.1.0.4000,所以使用到NHibernate.Logging就發生錯誤。

雖然可以使用Config設定讓所用的NHibernate使用最新的Assembly。

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="NHibernate" publicKeyToken="aa95f207798dfdb4" />
            <bindingRedirect oldVersion="0.0.0.0-3.2.0.4000" newVersion="3.2.0.4000" />
        </dependentAssembly>
    </assemblyBinding>
</runtime>

但是因為專案是使用3.1.0.4000,非常驚人的Visual Studio會自動讓你改回來,所以沒多久專案又因Assembly的錯誤無法執行,但是因為NHibernate.Spring的版本限制,又無法使用NuGet讓專案NHibernate升級(龜毛不想自己換Assembly),所以我選擇讓NHibernate.Logging降級。

使用NuGet Comman-Line安裝Package
開啟NuGet Comman-Line(名稱叫Package Manager Console),在工具列>Tools>Library Package>Package Manager Console。

點選後會在下方看到Package Manager Console視窗。

有沒有覺得PM>這些字很眼熟?

就是NuGet官網中Package網頁裡很顯眼的黑框中的開頭文字,沒錯那些指令就是要下在這個視窗中。

而NHibernate.Logging使用NHibernate 3.1.0.4000是1.1.0版本,所以以指今方式安裝NHibernate.Logging 1.1.0。

Install-Package相關指令
Install-Package Id [-IgnoreDependencies] [-Project] [-Version] [-Source ]
-IgnoreDependencies
是否忽略Package的相依性,也就是不會安裝其他Package。
-Project
指定安裝的專案,除了可以使用下來選單來決定安裝的專案也可以用這個選項指定。
-Source
指定Package來源的目錄路徑,如果你已經下載到本機,不想連線安裝可以使用這個選項。
-Version
指定安裝版本,預設使用最新版。

範例
Install-Package NHibernate.Logging –version 1.1.0 -project MvcApplicaion1 –source C:\packages

範例說明
在MvcApplicaion1專案中安裝NHibernate.Logging 1.1.0版,使用C:\packages下的NHibernate.Logging.1.1.0.nupkg檔案。

參考文件
Package Manager Console Powershell Referencehttp://docs.nuget.org/docs/reference/package-manager-console-powershell-reference


上一篇
NuGet系列-自動發佈
下一篇
NuGet系列-製作安裝Package時自動設定Config
系列文
發開相關7
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言