none
アセンブリ登録ツール (Regasm.exe)の使い方 RRS feed

  • 質問

  •  アセンブリ登録ツール (Regasm.exe)をwindowsXP、Visual Studio 2008で使おうと思っているのですが使い方が今ひとつ分かりません。
    RegAsm.exeのフルパスがC:\abc\RegAsm.exe、レジストリに登録する内容のhoge.dllがC:\bin\hoge.dllとして「ファイル名を指定して実行」で

     

    C:\abc\RegAsm.exe > C:\bin\hoge.dll
    C:\abc\regasm /codebase  C:\bin\hoge.dll

     

    としてもダメです。Visual Studioのコマンドラインを使うとの情報もあるのですがツールバーの中にもそれらしき項目はありません。

    Regasm.exeの使い方をご教授いただけないでしょうか。

    2008年11月29日 10:15

回答

  • どのようにうまくいかないかを書いてみませんか?

    例えば、「内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。」と表示されるのか、それともそれ以外の問題なのかが分からないことには、躓いているところがどこか分かりづらいと思います。

     

     girou2 さんからの引用

    C:\abc\RegAsm.exe > C:\bin\hoge.dll
    C:\abc\regasm /codebase  C:\bin\hoge.dll

    コマンドプロンプトの使い方の話になってしまうのですが、、、RegAsm.exeと単に打った場合は同じフォルダか、環境変数PATHで指定されたフォルダ等(システムフォルダとか)にあることを期待しますが、そのどちらにも存在しません。

    また、C:\abc\RegAsm.exeと打った場合は、C:\abcにRegAsm.exeが存在する必要があります。

     

    正解ですが、C:\Windows\Microsoft.NET\Framework\v2.0.50727にあります。

    C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegAsm.exeと打てば参照できるはずです。

     

    なお、Visual StudioコマンドプロンプトはExpress Editionにはありません。

    2008年11月29日 11:31
    モデレータ
  •  girou2 さんからの引用

     アセンブリ登録ツール (Regasm.exe)をwindowsXP、Visual Studio 2008で使おうと思っているのですが使い方が今ひとつ分かりません。
    RegAsm.exeのフルパスがC:\abc\RegAsm.exe、レジストリに登録する内容のhoge.dllがC:\bin\hoge.dllとして「ファイル名を指定して実行」で

     

    C:\abc\RegAsm.exe > C:\bin\hoge.dll
    C:\abc\regasm /codebase  C:\bin\hoge.dll

     

    としてもダメです。Visual Studioのコマンドラインを使うとの情報もあるのですがツールバーの中にもそれらしき項目はありません。

    Regasm.exeの使い方をご教授いただけないでしょうか。

     

    「ファイル名を指定して実行」だと実行結果が見えないため、コマンドプロンプト(cmd.exe)でコマンド入力してみてください。

    (もしくは[スタート]-[プログラム]-[アクセサリ]-[コマンドプロンプト])

    コマンドプロンプトから実行するとエラーが出た場合のメッセージも表示されるので、原因の究明に役立ちます。

     

     girou2 さんからの引用

    C:\abc\RegAsm.exe > C:\bin\hoge.dll

     

    あと気になった点として、RegAsm.exeの後ろの">"ですが、これは出力リダイレクトの記号ですが、C:\bin\hoge.dll の内容が壊れませんか?

    (C:\bin\hoge.dll の内容が RegAsm.exeの出力するメッセージに置き換わってしまうはず)

     

    2008年11月29日 12:46
  • こんばんは!(^^)!ふ~です。

    >この辺は不思議です。

    コマンドプロンプトの場合、パスの途中にスペースが有る場合など、

    下記のように『”xxxxx”』を使うと上手く行く場合がございます。

    >C:\abc\regasm.exe /codebase "C:\Program Files\\bin\hoge.dll"

     

    ご参考資料

    アセンブリ登録ツール (Regasm.exe)

    http://msdn.microsoft.com/ja-jp/library/tzat5yw6.aspx

    2008年11月30日 12:08

すべての返信

  • どのようにうまくいかないかを書いてみませんか?

    例えば、「内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。」と表示されるのか、それともそれ以外の問題なのかが分からないことには、躓いているところがどこか分かりづらいと思います。

     

     girou2 さんからの引用

    C:\abc\RegAsm.exe > C:\bin\hoge.dll
    C:\abc\regasm /codebase  C:\bin\hoge.dll

    コマンドプロンプトの使い方の話になってしまうのですが、、、RegAsm.exeと単に打った場合は同じフォルダか、環境変数PATHで指定されたフォルダ等(システムフォルダとか)にあることを期待しますが、そのどちらにも存在しません。

    また、C:\abc\RegAsm.exeと打った場合は、C:\abcにRegAsm.exeが存在する必要があります。

     

    正解ですが、C:\Windows\Microsoft.NET\Framework\v2.0.50727にあります。

    C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegAsm.exeと打てば参照できるはずです。

     

    なお、Visual StudioコマンドプロンプトはExpress Editionにはありません。

    2008年11月29日 11:31
    モデレータ
  • 返信ありがとうございます。

     

    >C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegAsm.exeと打てば参照できるはずです。

    あ、これは分かりやすいようにC:\abc\RegAsm.exeとしたまでで、実際はそのように打っています。

     

    >どのようにうまくいかないかを書いてみませんか?

    それで、RegAsm.exeは起動するのですが、すぐに自動的に閉じてしまい、レジストリーへの登録ができていない状況なのです。

     

    >なお、Visual StudioコマンドプロンプトはExpress Editionにはありません。

    そうでしたか。先ほど、TeamSystemの試用版を入れてみたのですが、こちらにもちょっと見当らないようです。
    2008年11月29日 12:13
  •  girou2 さんからの引用

     アセンブリ登録ツール (Regasm.exe)をwindowsXP、Visual Studio 2008で使おうと思っているのですが使い方が今ひとつ分かりません。
    RegAsm.exeのフルパスがC:\abc\RegAsm.exe、レジストリに登録する内容のhoge.dllがC:\bin\hoge.dllとして「ファイル名を指定して実行」で

     

    C:\abc\RegAsm.exe > C:\bin\hoge.dll
    C:\abc\regasm /codebase  C:\bin\hoge.dll

     

    としてもダメです。Visual Studioのコマンドラインを使うとの情報もあるのですがツールバーの中にもそれらしき項目はありません。

    Regasm.exeの使い方をご教授いただけないでしょうか。

     

    「ファイル名を指定して実行」だと実行結果が見えないため、コマンドプロンプト(cmd.exe)でコマンド入力してみてください。

    (もしくは[スタート]-[プログラム]-[アクセサリ]-[コマンドプロンプト])

    コマンドプロンプトから実行するとエラーが出た場合のメッセージも表示されるので、原因の究明に役立ちます。

     

     girou2 さんからの引用

    C:\abc\RegAsm.exe > C:\bin\hoge.dll

     

    あと気になった点として、RegAsm.exeの後ろの">"ですが、これは出力リダイレクトの記号ですが、C:\bin\hoge.dll の内容が壊れませんか?

    (C:\bin\hoge.dll の内容が RegAsm.exeの出力するメッセージに置き換わってしまうはず)

     

    2008年11月29日 12:46
  •  

    CatTail様、回答ありがとうございます。
    コマンドプロンプトから次のように実行しましたら上手く行きました。

    C:\abc\Regasm.exe /codebase hoge.dll

    hoge.dllはVSによるプロジェクト内にあり、パスは通っていないはずなのにこれで上手く行きました。逆に、C:\abc\regasm /codebase  C:\bin\hoge.dllのようにフルパスで指定した場合、ファイルが存在しないと怒られました。この辺は不思議です。

    2008年11月29日 13:33
  • こんばんは!(^^)!ふ~です。

    >この辺は不思議です。

    コマンドプロンプトの場合、パスの途中にスペースが有る場合など、

    下記のように『”xxxxx”』を使うと上手く行く場合がございます。

    >C:\abc\regasm.exe /codebase "C:\Program Files\\bin\hoge.dll"

     

    ご参考資料

    アセンブリ登録ツール (Regasm.exe)

    http://msdn.microsoft.com/ja-jp/library/tzat5yw6.aspx

    2008年11月30日 12:08
  • こんにちは。中川俊輔です。

     

    皆様、回答ありがとうございます。

     

    girou2さん、フォーラムのご利用ありがとうございます。

    勝手ながら、有用な情報と思われる回答へ回答済みチェックをつけさせていただきました。

     

    今後ともフォーラムをよろしくお願いします。

    それでは!

    2008年12月11日 4:52