dllをビスタのアセンブリフォルダにドラッグアンドドロップすると、「アクセスが拒否されました:mydll.dll」というエラーが表示されます。エラーメッセージをバイパスしてdllをgacに追加するにはどうすればよいですか?
6 に答える
私の推測では、管理者としてそれを行う必要があります... UACを無効にするか、gacutil.exeを使用してアセンブリを追加してみてください。
これは gacutil.exe で実行できます。次の場所にあります。
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
ただし、(.Net Redistributible だけでなく) .NET SDK をインストールした場合にのみ存在します。ただし、開発者のマシンからコピーすることはできます。
コマンド ラインを使用して、次の手順を実行します。
Visual Studio コマンド プロンプトを開く
まず、Visual Studio コマンド プロンプトを開きます (Visual Studio 2008 の場合、パスは Programs --> Visual Studio 2008 --> Visual Studio Tools --> Visual Studio 2008 Command Prompt です)。次の手順で説明するすべてのファイルは、Visual Studio に作成されます。 Studio 2008 コマンド プロンプト パス。私の場合、C:\Program Files\Microsoft Visual Studio 9.0\VC です。
- KeyFile sn -k keyPair.snk を生成します
- アセンブリ ildasm SomeAssembly.dll /out:SomeAssembly.il の MSIL を取得します。
- 念のため、元のアセンブリの名前を変更します SomeAssembly.dll SomeAssembly.dll.orig
- MSIL 出力と KeyFile ilasm SomeAssembly.il /dll /key=keyPair.snk から新しいアセンブリをビルドします。
- DLL を GAC gacutil -i SomeAssembly.dll にインストールします。
Vista を使用しているときに、Windows フォルダに gacutil.exe が見つからない場合があります。Vista の「Logo Program blah blah」の問題のため、含まれていません。Windows インストーラーを使用して、アセンブリを gac に追加してみてください。これが推奨される方法です。
そして、「Bi siktir git cay koy」という伝統的なオグリッシュのことわざを決して忘れないでください。
アセンブリ (dll) を GAC に配置する場合は、厳密な名前を付ける必要もあります。
http://msdn.microsoft.com/en-us/library/wd40t7ad(VS.80).aspx