在 Visual Studio 2019 的 PowerShell window 中找不到 ILDASM

ILDASM could not be found in the PowerShell window of Visual Studio 2019

尝试按照教程步骤反汇编一个可执行的 c# 文件,但每当我在命令提示符下键入 ildasm 时,它都会说在开发人员 powershell 中无法识别。当我对 dll 文件执行此操作时也显示相同的消息。请帮忙

错误消息暗示 ildasm.exe 的目录不在 $env:PATH 环境变量中存储的目录列表中,因此您不能通过 仅名称

要通过其 path 从 PowerShell 调用它,还有一个额外的语法要求:通过需要 quoting 的路径调用可执行文件 - 例如在你的情况下,假设路径包含 spaces - 需要通过 & 调用,call operator:

# Add arguments as needed.
& 'C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\ildasm.exe'

ildasm.exe的目录添加到您的$env:PATH变量,运行以下内容:

$env:PATH += ';C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools'

仅在当前会话.

的剩余时间有效

如果你想让它在以后的PowerShell会话中默认生效,运行以下一次,然后开始新的会话。该命令将 $env:PATH 扩展命令添加到您的 PowerShell profile file$PROFILE,它会在会话启动时自动加载:

if (-not (Test-Path $PROFILE)) { New-Item -Force $PROFILE }
Add-Content $PROFILE -Value '$env:PATH += ";C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools"'

如果您希望更改系统范围(在以后的会话中)生效,您需要更新存储在注册表中的 PATH 环境变量 persistent 定义; 运行以下一次,然后启动一个新的 PowerShell 会话。

[Environment]::SetEnvironmentVariable(
  'Path',
  (
    [Environment]::GetEnvironmentVariable('Path', 'User') + 
    ';C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools'
  ),
  'User'
)

以上修改了当前用户 的永久PATH 环境变量。 要修改 所有 用户的定义,请将 'User' 的两个实例替换为 'Machine',但请注意,您必须 运行 来自 提升 会话(运行 作为管理员)。