0

.NET フレームワークと .NET コア プロジェクトのpackageReferenceを復元するために、C# ベース コードをプログラムで使用しようとしています。

dotnet.exe / msbuild.exe を使用することを考えましたが、方法がわかりません。

dotnet CLIでできることをシミュレートしたい:

dotnet restore '.\myproject.csproj' --packages '.\OutputFolder' 

しかし、私はプログラムでそれをやりたいです。

答えてくれてありがとう。

4

1 に答える 1

0

シェルを使用しても問題ない場合は、次の手順を試して、c# を使用して nuget パッケージを復元してください。

  1. NuGet ギャラリーのダウンロードから Nuget.exe の最新バージョンをダウンロードします。
  2. Nuget.exe を C# プロジェクトに追加し、"Copy if newer" としてマークして、出力ディレクトリにコピーします
  3. ソリューション パスをパラメーターとして使用して、RestorePackages() メソッドの下で実行します。

        public static void RestorePackages(string solutionPath)
        {
            var dir = AppDomain.CurrentDomain.BaseDirectory;
            ProcessStartInfo objPI = new ProcessStartInfo($"{dir}\\nuget.exe", $"restore \"{solutionPath}\" -Verbosity quiet");
            objPI.RedirectStandardError = true;
            objPI.RedirectStandardOutput = true;
            objPI.UseShellExecute = false;

            Process objProcess = Process.Start(objPI);
            string error = objProcess.StandardError.ReadToEnd();
            string output = objProcess.StandardOutput.ReadToEnd();

            objProcess.WaitForExit();
        }
于 2021-06-04T20:41:53.110 に答える