1

我想基于Packages.config& 包引用以编程方式为 .net core 和 .net Framework 恢复 nuget 包。

任何想法?

谢谢!

4

2 回答 2

1

nuget.exe 工具处理这两种情况。因此,不要使用“msbuild /t:Restore”或“dotnet restore”,只需运行“nuget restore”即可。如果您想以编程方式执行此操作,可以使用 nuget 包 Nuget.CommandLine(通过 Nuget 或 Chocolatey 安装,具体取决于您的需要)

于 2020-04-27T11:37:00.527 回答
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:45:24.757 回答