やる気駆動型エンジニアの備忘録

WPF(XAML+C#)の話題を中心に.NET/Android/CI やたまに趣味に関するブログです

Jenkinsで独自NuGetパッケージの復元メモ

以前、Jenkinsを使用してNuGetパッケージを復元することができました。
iyemon018.hatenablog.com

今回は独自に作成したNuGetパッケージの復元を行います。
例えば社内で管理しているライブラリの復元も行うことができます。

まずは下準備

1. Jenkins実行ユーザーの"%AppData%\NuGet"フォルダから"NuGet.Config"を参照します。
2. ファイルを開き以下のように変更します。※1.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageRestore>
    <add key="enabled" value="True" />
    <add key="automatic" value="True" />
  </packageRestore>
  <packageSources>
    <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
    <add key="<独自NuGet>" value="<独自NuGetパッケージ保存パス>" />
  </packageSources>
  <disabledPackageSources />
  <activePackageSource>
    <add key="All" value="(Aggregate source)" />
  </activePackageSource>
  <bindingRedirects>
    <add key="skip" value="False" />
  </bindingRedirects>
</configuration>

3. Jenkinsのジョブで"Windowsバッチコマンドの実行"を選択し、以下のコマンドを入力します。

cd "C:\Nuget"
nuget.exe restore %WORKSPACE%\<ソリューション ファイル パス>

※1. 以下の方法でもOKです。
1. NuGet.configを別名で保存し、任意のフォルダにコピーします。(内容は上記2.のものを保存します。)
2. Jenkinsのジョブで"Windowsバッチコマンドの実行"を選択肢、以下のコマンドを入力します。

cd "C:\Nuget"
nuget.exe restore %WORKSPACE%\<ソリューション ファイル パス> -configfile "<NuGet.configファイルパス>"

(NuGet.exeのコマンドライン引数については以下を参照)
NuGet Command-Line Interface (CLI) Reference | Microsoft Docs

独自NuGetパッケージが共有フォルダに配置されている場合は、アクセス権を持つユーザーで実行する必要があります。
Jenkinsの実行ユーザーを変更するには以下を参照してください。
iyemon018.hatenablog.com