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

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

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

VB2019 .NET Frameworkの参照設定について

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■91251 / inTopicNo.1)  VB2019 .NET Frameworkの参照設定について
  
□投稿者/ HYDE2019 (1回)-(2019/06/08(Sat) 15:18:18)

分類:[.NET 全般] 

.NETを始めたばかりの初心者です。
VB2019のWindowsフォームアプリケーション(VB .NET Framework)で、
外部機器のログを取得するプログラムを開発しようとしています。

外部機器用のプロトコルdllファイルが提供されているので、
プロジェクト内に取り込んで認識もしくは、
ステートメントで出てくるようにしたいのですが、
どうやってやればよいかがわかりません。

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

プロジェクトの追加参照から追加しようとしても、
「追加出来ませんでした。有効なアセンブリ、
 もしくはCOMコンポネントであることを確認してください」
と表示され、拒否されてしまいます。

すいませんが、どうやってプロジェクト内に取り組めばよいかを教えてください。
よろしくお願い致します。
引用返信 編集キー/
■91258 / inTopicNo.2)  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を選んで下さい。
引用返信 編集キー/
■91259 / inTopicNo.3)  Re[2]: VB2019 .NET Frameworkの参照設定について
□投稿者/ HYDE2019 (3回)-(2019/06/09(Sun) 10:28:06)
No91258 (Hongliang さん) に返信

HYDE2019です。
ご教示ありがとうございました。

> 2019/06/09(Sun) 00:17:00 編集(投稿者)
>
>>プロトコル提供フォルダ内には関連dllファイルとBATファイルだけで、
>>BATを実行しても「拒否されました」と表示されてしまいます。
>>(BATはCopyによるWin32フォルダへの移行と、レジストするコマンドが記述されていました)
>
> 「Win32フォルダ」というのはよく分かりませんが(C:\Windows\System32?)、「レジストするコマンド」というのは regsvr32 でしょうか?
> そうでなければ以下は無視して、もっと詳しくbatファイルの内容を説明して下さい。

すいません、System32フォルダでした。
失礼しました。
regsvr32だったと思います。
会社がお休みなので、月曜日に確認してみます。

本当にありがとうございました。
かなり困っていました。
管理者権限ユーザーでもBAT実行時の手続きは知りませんでした。

早速、1〜3の内容を月曜日に確認してみます。
また調べてもわからないことが出てきましたら、
引き続き投稿いたしますので、ご教示いただけると嬉しいです。

本当にありがとうございました。

引用返信 編集キー/
■91276 / inTopicNo.4)  Re[3]: VB2019 .NET Frameworkの参照設定について
□投稿者/ HYDE2019 (4回)-(2019/06/10(Mon) 14:52:56)
No91258 (Hongliang さん) に返信

こんにちは、HYDE2019です。
ご指示の通り処理したところ、無事に認識することが出来ました。
本当に助かりました。
ありがとうございました。

また何かございましたら、よろしくお願いいたします。
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ