1. ホーム
  2. dll

PowerShellでAdd-ed Typeを再び削除することはできますか?

2023-08-17 14:24:48

質問

私は現在 C# でライブラリを書いており、いくつかの機会でそれをすばやくテストするために PowerShell を使用していました。しかし、PowerShell が明らかにまだ DLL を開いているため、プロジェクトを再ビルドすることができません。

で追加した後、DLL を再度アンロードする方法はありますか? Add-Type ? ドキュメントにはそれに関する手がかりがないようで、明らかな候補としては Remove-Type (これは存在しません。 Type を名詞とするコマンドは1つしかありません)。PowerShell を閉じて、再構築するたびにビルド ディレクトリに移動して型を追加するというすべてのことを行うのは面倒です。

どのように解決するのか?

他の人が言うように、これは .NET の動作です。AppDomain にロードされたアセンブリをアンロードすることはできません。AppDomain のみをアンロードすることができ、powershell は単一の appdomain を使用します。私は何年か前にこのことについて少しブログを書きました。

https://web.archive.org/web/20170707034334/http://www.nivot.org/blog/post/2007/12/07/WhyAppDomainsAreNotAMagicBullet

powershell を起動し、bin の場所に cd して "powershell" を実行してネストされたシェル (新しいプロセス) を開始します。