web-dev-qa-db-ja.com

アセンブリフォルダからDLLをアンインストールする方法?GACからDLL)をアンインストールするときにアクセスが拒否されました

Windows Server 2008のC:\ Windows\Assembly「フォルダー」からDLLをアンインストールしようとしていますが、「許可が拒否されました」エラーが発生します。=を削除するにはどうすればよいですか。 DLLアプリケーション全体をアンインストールせずに?

アプリケーションベンダーから新しいDLLが送られてきましたが、古いバージョンを削除したり、これらの新しいDLLを追加したりする方法は説明されていません。グーグルもいつものように役に立たなかった...

2
SturdyErde

これは以前は機能しませんでしたが、ありがたいことに私の最後の試みで機能しました。図に行く...

サーバー上でgacutil.exeを見つけ、gacutil -u dllName.DLLを実行しました。新しいDLLは単にgacutil -i "PathAndFilenameOfNewDLL"

http://msdn.Microsoft.com/en-us/library/zykhfde0%28VS.80%29.aspx

3
SturdyErde

パーティーに遅れていることはわかっていますが、gacutil.exeが存在しない場合は、Powershellを使用した別の解決策を次に示します。 Gacutilは開発ツールであり、通常は本番システムには存在しません。

昇格されたプロンプトを使用してPowerShellを右クリックし、[管理者として実行]を選択して起動します。次に、以下を入力するか、コピーして貼り付けます。

$pathToFile = 'PathAndFilename.dll'
[System.Reflection.Assembly]::Load("System.EnterpriseServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")
$publish = New-Object System.EnterpriseServices.Internal.Publish
$publish.GacRemove($pathToFile)

install GACにコピーする場合は、最後の行を次のように変更します。

$publish.GacInstall($pathToFile)
3
JamesQMurphy

Gacutil/uをcmdファイルに入れ、右クリックして[管理者として実行]を選択して実行します。これは、他のすべてが失敗した場合に機能しました。

1
Rob