もくじ
→https://qiita.com/tera1707/items/4fda73d86eded283ec4f
ビルドの自動化関連
やりたいこと
バッチで、ファイルをダウンロードしてきて好きなパスに配置する、ということをしたい。
バッチでnuget.exeをダウンロード
今回、いろいろなパッケージを管理するためのnuget.exe
をhttps://dist.nuget.org/win-x86-commandline/latest/nuget.exe
からダウンロードしてきて、バッチファイルと同じ階層に保存する、ということをした。
その時のサンプルは下記の通り。
set FILENAME="%~dp0\nuget.exe"
if not exist %FILENAME% (
bitsadmin /transfer "nuget" https://dist.nuget.org/win-x86-commandline/latest/nuget.exe "%FILENAME%"
)
書き方は、
bitsadmin /transfer <ジョブ名> <URL> <保存先ファイル名>
- ジョブ名は何でもよい。
- URLは、ダウンロード先。
- 保存先ファイル名は、保存したいファイルのパス。
発展形
このコマンドを使ってnuget.exeをダウンロードするようにしてやることで、以前メモした[ビルドをバッチで行う]方法の中のnuget.exe
を置いたフォルダで
.\NuGet restore <slnファイルのパス>
を行う、というところのnuget.exeを置くという行為が自動化できる。
なんの役に立つか?
ソースコードの管理にgit等を使っているときに、容量削減のためバイナリファイル(exeやdllファイル等)を上げてはいけない、というルールがある場合がある。
そういう場合に、nuget.exeをリポジトリに上げて容量を無駄に増やさず、バッチファイルを1つ上げるだけで済むようにできる。
参考
【VisualStudio】ビルドをバッチで行う
https://qiita.com/tera1707/items/018e8390207c5b2212b2
コマンドプロンプトからインターネット上のファイルをダウンロードする (bitsadmin)
https://maku77.github.io/windows/cmd/download.html
nuget.exe CLIを使用してパッケージを管理する
https://docs.microsoft.com/ja-jp/nuget/install-nuget-client-tools#windows