Skip to content
June 1, 2013 / windperson

Nuget二三事

  • 修改專案內Nuget儲存函式庫檔案位置
    1. 首先須將所在的方案(solution)啟用Enable Nuget Package Restore:
      Enable Nuget Package Restore
    2. 然後修改solution內多出現的.nuget目錄下的Nuget.config設定檔,新增一個<config>節區的內容如下:

      <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <config>
          <add key="repositoryPath" value="My_Nuget_Repository_Path" />
        </config>
        <solution>
          <add key="disableSourceControlIntegration" value="true" />
        </solution>
      </configuration>
      

      第4行的My_Nuget_Repository_Path置換成欲指定Nuget用來存放下載函式庫位置的絕對或相對路經。

    3. 刪除方案目錄內原有的packages子目錄,重啟Visual Studio開啟該方案,點選Manage Nuget Package for Solution…:
      Open Nuget Pakcage UI
      然後按畫面上方的Restore按鈕。
      Restore Nuget Package

      也可以從開啟安裝Nuget後新增的Package Manger Console畫面上所提示的Restore按鈕:
      Package Manager Console

    4. 然後用下面介紹的修復專案內所有Nuget Package引用機制把專案(project)中的函式庫引用(reference)自動重新指定到正確位置。
  • 修復專案內所有Nuget Package引用
    用安裝Nuget後新增的Package Manger Console下這個指令:

    Update-Package -Reinstall
  • 限制Nuget函式庫的最高升級版本
    例如像jQuery的2.x版之後不支援瀏覽器IE 8及更之前版本,如果不想讓Nuget升級專案內所有Nuget函式庫時就自動把jQuery升級到v2.x,可以修改在專案目錄內的packages.config這個設定檔,將對應的jQuery設定內容修改如下:

     <package id="jQuery" version="1.10.0.1" targetFramework="net40" allowedVersions="[,2.0)" />
    

    新增的allowedVersion屬性內可以用類似數學區間的表示法來指定該Nuget Package在此專案中所允許使用的版本範圍,此例中是允許所有的版本號碼< 2.0,表示法的細節請見官方說明:
    http://docs.nuget.org/docs/reference/versioning#Specifying_Version_Ranges_in_.nuspec_Files

  • 強迫Nuget函式庫版本降級
    如果不小心裝了某個叫做package_A函式庫的新版本,需要降級回到用某個version_B的舊版本時,在Package Manager Console使用以下指令強迫降級:

    Uninstall-Package pakcage_A -Force; Install-Package pakcage_A -Version version_B
Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: