【发布时间】:2019-12-25 10:53:44
【问题描述】:
我正在尝试使用 C# 基本代码以编程方式恢复 .NET 框架和 .NET 核心项目的 packageReference。
我想过使用 dotnet.exe / msbuild.exe 但我不知道怎么做!
我想模拟一下我们可以用 dotnet CLI 做什么:
dotnet restore '.\myproject.csproj' --packages '.\OutputFolder'
但我想以编程方式进行。
感谢您的回答。
【问题讨论】:
-
为什么不使用 shell 并实际运行 dotnet cli?
-
嗯,如果我理解正确,您的意思是像Run Command Prompt Commands?使用
System.Diagnostics.Process.Start("CMD.exe", "dotnet restore '.\myproject.csproj' --packages '.\OutputFolder'");,您可以以编程方式运行您的 dotnet 命令。 -
@EliSherer 这可能是一个解决方案,但是当我将它部署到具有 windows/linux 机器主机的特定环境时,它会起作用或不起作用!你怎么看?
-
@MarTin 当我将它部署到具有 windows/linux 机器主机的特定环境时,它会引发 风险 与否!你怎么看?
-
会的。但是您可以在执行前检查和处理环境。
Environment.OSVersion.Platform查看平台。或var values = Environment.GetEnvironmentVariable("PATH");检查cmd.exe。执行第 3 方总是有风险的。 dotnet 也是如此。您必须先证明 dotnet 作为环境 PATH 变量存在。
标签: c# programmatically dotnet-cli packagereference dotnet-restore