【发布时间】:2019-08-09 11:21:08
【问题描述】:
我想基于 Packages.config 和包引用以编程方式为 .net 核心和 .net Framework 恢复 nuget 包。
有什么想法吗?
谢谢!
【问题讨论】:
-
但我希望用 c# 代码以编程方式完成它!
标签: c# msbuild nuget nuget-package-restore dotnet-restore
我想基于 Packages.config 和包引用以编程方式为 .net 核心和 .net Framework 恢复 nuget 包。
有什么想法吗?
谢谢!
【问题讨论】:
标签: c# msbuild nuget nuget-package-restore dotnet-restore
nuget.exe 工具处理这两种情况。因此,不要使用“msbuild /t:Restore”或“dotnet restore”,只需运行“nuget restore”即可。如果您想以编程方式执行此操作,可以使用 nuget 包 Nuget.CommandLine(通过 Nuget 或 Chocolatey 安装,具体取决于您的需要)
【讨论】:
如果使用shell没问题,您可以尝试以下步骤使用c#恢复nuget包。
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();
}
【讨论】: