5

Nuget ファイルを自動的にパックしてプライベート リポジトリ (ファイル共有) とプライベート シンボル サーバー (localhost 上) に公開するスクリプトを作成しています。

Powershell で実行nuget packすると、nuget とシンボル パッケージの両方のファイルの場所を含む文字列出力が得られますが、文字列を解析せずにこれらのパスをプログラムで取得する方法はありません。パッケージのバージョンは .csproj 自体によって決定されるため、ファイル名にどのバージョンが配置されるかは必ずしもわかりません。

pack コマンドの出力は次のとおりです。

Attempting to build package from 'MyProject.csproj'.
Building project 'C:\Users\me\prg\MyProject.csproj' for target framework '.NETFramework,Version=v4.0'.
Packing files from 'C:\Users\me\prg\bin\Release'.
Using 'Myproject.nuspec' for metadata.
Successfully created package 'C:\nuget\MyProject.1.0.0.0.nupkg'.

Attempting to build symbols package for 'MyProject.csproj'.
Building project 'C:\Users\me\prg\MyProject.csproj' for target framework '.NETFramework,Version=v4.0'.
Packing files from 'C:\Users\me\prg\bin\Release'.
Using 'MyProject.nuspec' for metadata.
Successfully created package 'C:\nuget\Myproject.1.0.0.0.symbols.nupkg'.

「正常に作成されたパッケージ」行を解析するために、弾丸を噛んで正規表現を書く必要がありますか?

4

3 に答える 3

5

デフォルトでnuget packは、作成されたパッケージが現在のディレクトリに出力されます。オプションを指定することで、これをオーバーライドできますOutputDirectorynugetコマンドをどこから実行したか( C:\Users\me\prg\C:\nuget\、または他の場所から) は明確ではないため、既にこれを知っているかもしれませんが、それはあなたを提供することができます別のオプション:

オプションとして指定できる一時ディレクトリ (例: C:\nuget\temp\ ) を自分で作成できOutputDirectoryます。次に、スクリプトで を実行する前にこのディレクトリが空であることを確認する場合はnuget pack、単に * .nupkgをファイル共有にコピーできます (その後、必要に応じてC:\nuget\に移動します)。

于 2013-06-21T21:53:05.607 に答える