在 Visual Studio 2019 的 PowerShell 窗口中找不到 ILDASM

pff*_*fft 2 windows powershell ildasm visual-studio-2019

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

这里有错误信息

mkl*_*nt0 5

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

要通过 PowerShell 的路径调用它,还有一个额外的语法要求:通过需要引用的路径调用可执行文件例如在您的情况下,假设路径包含空格)需要调用 via &,即调用运算符

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

要将的目录添加到变量ildasm.exe$env:PATH中,请运行以下命令:

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

这仅在当前会话的剩余时间内有效

如果您希望它默认在将来的PowerShell会话中生效,请运行以下命令一次,然后启动一个新会话。该命令将$env:PATH-extending 命令添加到您的 PowerShell配置文件中,$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"'
Run Code Online (Sandbox Code Playgroud)

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

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

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