C#コンソールアプリケーションでNuGet APIを使用して内部Nexus NugetリポジトリにNugetパッケージを公開しようとしています。コードスニペット:NuGet APIを使用してパッケージを公開するには
List<Lazy<INuGetResourceProvider>> providers = new List<Lazy<INuGetResourceProvider>>();
providers.AddRange(Repository.Provider.GetCoreV3());
PackageSource packageSource = new PackageSource("http://nexus:8081/nexus/nuget-repo");
SourceRepository sourceRepository = new SourceRepository(packageSource, providers);
ISettings settings = NuGet.Configuration.Settings.LoadDefaultSettings(@"C:\Users\<user>\AppData\Roaming\NuGet", null, new MachineWideSettings());
var packageSourceProvider = new PackageSourceProvider(settings);
packageSourceProvider.SaveActivePackageSource(packageSource);
try
{
await PushRunner.Run(
settings,
packageSourceProvider,
filetouse,
"http://nexus:8081/nexus/nuget-repo",
"MY API KEY", "", "", 10, false, true,
new Logger());
}
catch(Exception e)
{
}
私は取得しています問題はPushRunnerへの呼び出しは、例外なく、すぐに完了し、パッケージが押されていないということです。 NuGetがパッケージをプッシュしようとしているが、その後は他のログは出力されないというメッセージがコンソールに表示されます。私はnuget.exeを使用して同じパッケージをプッシュしようとしており、正常に動作します。 NuGet成果物を公開するには、Nexusサーバーにユーザー名、パスワード、およびAPIキーが必要です。
NuGet APIのマニュアルが不足しているため、問題の内容がわからなくても、正しいことをしているかどうかはわかりません。
コードにユーザ名とパスワードを何らかの形で渡したいと言っておきたいと思います。私は、資格情報を入力するようにnuget.exeが促したので、資格情報(APIキーも必要)が必要であると推測しています。上記のコードをテストするとき、ユーザー固有のnuget.configに資格情報を保存しました。 – user7437257