ここにそのケースがあります。異なる顧客に展開できるWebアプリケーションがあります。 Webアプリケーションは、顧客ごとに異なるモジュールで拡張できます。モジュールは、NuGetパッケージとして作成され、DLLを、例えば以下のような静的ファイルと一緒に含む。 HTML、CSS、JS、ASMX ...Jenkins CIビルドジョブでNuGetパッケージを挿入する方法
すべての顧客が同じモジュールを使用しているわけではなく、基本Webアプリケーションのできるだけ滑らかなものでなければならないため、Webアプリケーションプロジェクト自体はモジュールについて何も知らない。代わりに、Jenkinsのビルドジョブを各顧客に提供しています。このビルドジョブでは、packages.configファイルが変更され、必要なモジュールのNuGetパッケージエントリが追加されます。次に、モジュールNuGetパッケージのnuget.exe restore
とnuget.exe update
(最新バージョンを確実にするため)を行います。この後、私たちはmsbuildとOctopackを使ってWebアプリケーションをビルドし、展開します。
NuGetモジュールとweb.configの変換(web.config.install.xdt経由)に含まれているDLLにはうってつけですが、残念ながらそれに含まれる静的ファイルモジュールNuGetパッケージ:(
これは、Webアプリケーション.csprojファイルの参照がないためです。静的ファイルは実際に正しい場所にコピーされますが、最終的には追加されませんOctopack Nugetパッケージはプロジェクトコンテンツとして認識されないので、
これまでのところ私はNuGet CLIを使って解決することはできませんが、おそらく?パッケージマネージャーコンソールは、Visual StudioのPowerShellコンテキスト内でのみ使用できます。 (Update-Package -Reinstall
は完全だろうと思います)
他のアイデアをお持ちですか?