[.psm1ファイル]のネストされたモジュールをインポートするモジュールマニフェストファイル[.psd1ファイル]があります。モジュールの一つは、[.psm1]ファイルは次のようにグローバルスコープで定数変数を定義する -Powershell:Removeモジュールはネストされたモジュールで定義されたグローバル[定数]変数をアンロードしません。
set-variable -name DataDirectory -option Constant -value "DataSources" -scope global -description "Data Directory"
私はPSD1ファイル&の削除モジュールを行うと、再度import-をしようPowerShellのISEの同一セッション内のモジュール、私は次のエラーを取得する -
+ set-variable <<<< -name DataDirectory -option Constant -value "DataSources" -scope global -description "Data Directory"
+ CategoryInfo : WriteError: (DataDirectory:String) [Set-Variable], SessionStateUnauthorizedAccessException
+ FullyQualifiedErrorId : VariableNotWritable,Microsoft.PowerShell.Commands.SetVariableCommand
ネストされたモジュールの1つに定義された変数がアンロードされていないことを意味しています。
明示的にremove-variableを実行する必要はありますか?私はremove-moduleがすべてをアンロードすると思った。
あなたが言った - 変数を定義したモジュールだけがそれを削除できます。どうすればこれを達成できますか? –
グローバルスコープとしてスコープしないでください。モジュールスコープで定義する必要があります。グローバル修飾子を削除するだけです。他のモジュールがアクセスできるようにするならば、別の解決策を見つける必要があります –