0

我正在尝试使用 C# 基本代码以编程方式恢复.NET 框架和 .NET 核心项目的packageReference

我想过使用 dotnet.exe / msbuild.exe 但我不知道如何!

我想模拟我们可以用dotnet CLI做什么:

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

但我想以编程方式进行。

感谢您的回答。

4

1 回答 1

0

如果使用 shell 没问题,您可以尝试以下步骤使用 c# 恢复 nuget 包。

  1. 从NuGet Gallery 下载最新版本的 Nuget.exe
  2. 将 Nuget.exe 添加到您的 C# 项目并标记为“如果较新则复制”以复制到输出目录
  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 回答