尝试按照教程步骤并反汇编可执行的 c# 文件,但是每当我在命令提示符下键入 ildasm 时,它都会显示在开发人员 powershell 中无法识别。当我对 dll 文件执行此操作时也显示相同的消息。请帮忙。
问问题
119 次
1 回答
3
该错误消息暗示ildasm.exe
' 目录不在$env:PATH
环境变量中存储的目录列表中,因此您不能仅按名称调用它。
要从 PowerShell 通过其路径调用它,还有一个额外的语法要求:通过需要引用的路径调用可执行文件- 例如在您的情况下,假设路径包含空格- 需要调用 via &
,调用运算符:
# 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
-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"'
如果您希望更改在系统范围内(在未来的会话中)生效,您需要更新PATH
存储在注册表中的环境变量的持久定义;运行以下一次,然后启动一个新的 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'
于 2021-08-28T18:15:38.830 回答