如何解析 dnvm 列表
How to parse dnvm list
如何以编程方式确定当前活动的 dotnet 版本?我可以 运行 dnvm list,但我终其一生都无法将输出传输到变量、文件、字符串……似乎没有任何效果,我不明白为什么。
dnvm list > currentList.txt
导致输出仍然显示在控制台上,没有任何内容重定向到文件。
它似乎没有写入 StdErr - 2>&1 没有改变任何东西...
如果有人甚至可以提供一些关于为什么这行不通的见解,我们将不胜感激。
是否有一种 Powershell 方法可以正确查询我所缺少的?
dnx 和 dnvm 消失了,dotnet
使用不同的模型。没有 'active' 运行 时间了。现在 运行 编译应用程序的时间将用于 运行 应用程序。
在您的 $env:UserProfile\.dnx\bin 文件夹中,您会找到一个 dnvm.ps1 脚本。对此进行分析,您可以从控制台帮助中看到不明显的地方 - 它只是一个委托给此 ps1 脚本的命令文件 - 任何函数参数都可以从命令行传递,而命令只会传递他们直接进入 PowerShell。所以你可以这样做:
#This is the version we're looking to run against
$required = @{
Version = "1.0.0-rc1-update2";
Architecture = "x64";
Runtime = "clr";
OperatingSystem = "win"
}
#Check to see if the version we need is installed...
$installed = (dnvm list -PassThru | ? {
$_.Version -eq $required.Version -and
$_.Architecture -eq $required.Architecture -and
$_.Runtime -eq $required.Runtime -and
$_.OperatingSystem -eq $required.OperatingSystem
})
if ($installed -eq $null) {
# The version we require isn't installed...
# ...installing it will set it as active
dnvm install -VersionNuPkgOrAlias $required.Version `
-Architecture $required.Architecture `
-Runtime $required.Runtime `
-OS $required.OperatingSystem
}
elseif (!$installed.Active) {
# The version we require is already installed...
# ...just set it active
dnvm use -VersionOrAlias $required.Version `
-Architecture $required.Architecture `
-Runtime $required.Runtime `
-OS $required.OperatingSystem
}
如何以编程方式确定当前活动的 dotnet 版本?我可以 运行 dnvm list,但我终其一生都无法将输出传输到变量、文件、字符串……似乎没有任何效果,我不明白为什么。
dnvm list > currentList.txt
导致输出仍然显示在控制台上,没有任何内容重定向到文件。
它似乎没有写入 StdErr - 2>&1 没有改变任何东西...
如果有人甚至可以提供一些关于为什么这行不通的见解,我们将不胜感激。 是否有一种 Powershell 方法可以正确查询我所缺少的?
dnx 和 dnvm 消失了,dotnet
使用不同的模型。没有 'active' 运行 时间了。现在 运行 编译应用程序的时间将用于 运行 应用程序。
在您的 $env:UserProfile\.dnx\bin 文件夹中,您会找到一个 dnvm.ps1 脚本。对此进行分析,您可以从控制台帮助中看到不明显的地方 - 它只是一个委托给此 ps1 脚本的命令文件 - 任何函数参数都可以从命令行传递,而命令只会传递他们直接进入 PowerShell。所以你可以这样做:
#This is the version we're looking to run against
$required = @{
Version = "1.0.0-rc1-update2";
Architecture = "x64";
Runtime = "clr";
OperatingSystem = "win"
}
#Check to see if the version we need is installed...
$installed = (dnvm list -PassThru | ? {
$_.Version -eq $required.Version -and
$_.Architecture -eq $required.Architecture -and
$_.Runtime -eq $required.Runtime -and
$_.OperatingSystem -eq $required.OperatingSystem
})
if ($installed -eq $null) {
# The version we require isn't installed...
# ...installing it will set it as active
dnvm install -VersionNuPkgOrAlias $required.Version `
-Architecture $required.Architecture `
-Runtime $required.Runtime `
-OS $required.OperatingSystem
}
elseif (!$installed.Active) {
# The version we require is already installed...
# ...just set it active
dnvm use -VersionOrAlias $required.Version `
-Architecture $required.Architecture `
-Runtime $required.Runtime `
-OS $required.OperatingSystem
}