C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■91258 / )  Re[1]: VB2019 .NET Frameworkの参照設定について
□投稿者/ Hongliang (822回)-(2019/06/09(Sun) 00:10:52)
2019/06/09(Sun) 00:17:00 編集(投稿者)

> プロトコル提供フォルダ内には関連dllファイルとBATファイルだけで、
> BATを実行しても「拒否されました」と表示されてしまいます。
> (BATはCopyによるWin32フォルダへの移行と、レジストするコマンドが記述されていました)

「Win32フォルダ」というのはよく分かりませんが(C:\Windows\System32?)、「レジストするコマンド」というのは regsvr32 でしょうか?
そうでなければ以下は無視して、もっと詳しくbatファイルの内容を説明して下さい。

1. 管理者権限
まず、C:\Windows以下へのファイルコピー、およびregsvr32の実行は、管理者権限が必要になります。
Windows Vista以降のWindowsでは、既定では管理者ユーザであっても普段は管理者権限を持たず、明示的に「管理者として実行」する必要があります。
今回の場合、スタートメニューのWindowsシステムツールか何かに入っている「コマンドプロンプト」を右クリックして「管理者として実行」すれば、そのコマンドプロンプト上で実行するbatなどすべて管理者として実行できるようになります。

2. 64bit/32bit
次に、regsvr32を行うWindowsが64bit版の場合、そのdllが32bitで作られているかどうかが問題になります。
Windowsが32bit版の場合、またはbatファイルの中にC:\Windows\SysWOW64フォルダが登場するなら、この点は考慮済みと思われるので問題になりません。
とりあえず(1.の「管理者として実行」したコマンドプロンプトで)batファイルを動かしてみて、「読み込みに失敗しました」というメッセージが表示された場合、以下のようにbatファイルを修正して下さい。
C:\Windows\System32の記述がある場合、C:\Windows\SysWOW64に変更する。
regsvr32がフルパス表記されていない場合またはC:\Windows\System32\regsvr32と記述されている場合、C:\Windows\SysWOW64\regsvr32に変更する。
取り敢えずcopyとregsvr32、あとcdぐらいだけならこれだけで十分のはずです。他に記載がない部分があるならそこに何かあるかも知れませんが。

3. VBでの参照
最後にVBからの参照ですが、上記1.と2.を済ませておけば、参照の追加で「COM参照」的なタブを選べば、一覧の中に追加されているはずです。
ただし、2.において、
・32bit Windows、または64bit WindowsでSysWOW64の方を使って登録した場合、アプリケーションは32bit向けで作らなければなりません。
・上記ではない、つまり64bit WindowsでSysWOW64の方を使わずに登録した場合、アプリケーションは64bit向けで作らなければなりません。
簡単には、Visual Studioのツールバーに「Any CPU / x86 / x64」を選ぶドロップダウンがあると思うので、32bit向けの場合はx86を、64bit向けの場合はx64を選んで下さい。
返信 編集キー/


管理者用

- Child Tree -