none
呼び出し元システムのシステム名とバージョンを取得したい RRS feed

  • 質問

  • C#2008でクラスライブラリの開発しています。

    呼び出し元のシステム(Exe)のシステム名と
    バージョンを取得したいと思っています。

    汎用的に作りたいと思いクラスライブラリを作っているのですが、
    どのようにプログラムしたら取得できるかが分からず
    質問させて頂きました。

    以下のようにプログラムしてみましたが、
    これではClassLibraly1と取得できるだけで、
    呼び出し元のシステム名は取得できませんでした。
    GetType().Assembly.GetName().Name

    どのようにプログラムしたら良いかが分かりましたら、
    教えて頂けませんか?
    よろしくお願いいたします。

    2010年1月16日 12:03

回答

  • 以下のメソッドで満足できませんか?
    http://msdn.microsoft.com/ja-jp/library/system.reflection.assembly.getentryassembly.aspx


    ただし、ネイティブアプリケーション(アンマネージ アプリケーション)から呼び出されている場合は取得できません。


    個人的には、なぜ汎用的なライブラリが呼び出し元を気にしなければならないかに疑問を持ちます。
    ファイルに記録するなど必要であれば、呼び出し側から指定できるようにしたら良いように思います。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    • 回答としてマーク ユイカ 2010年1月17日 6:03
    2010年1月16日 13:30
    モデレータ

すべての返信

  • 以下のメソッドで満足できませんか?
    http://msdn.microsoft.com/ja-jp/library/system.reflection.assembly.getentryassembly.aspx


    ただし、ネイティブアプリケーション(アンマネージ アプリケーション)から呼び出されている場合は取得できません。


    個人的には、なぜ汎用的なライブラリが呼び出し元を気にしなければならないかに疑問を持ちます。
    ファイルに記録するなど必要であれば、呼び出し側から指定できるようにしたら良いように思います。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    • 回答としてマーク ユイカ 2010年1月17日 6:03
    2010年1月16日 13:30
    モデレータ
  • ありがとうございます。

    教えて頂いたとおり、次のようにプログラムすることで、
    取得できました。
    System.Reflection.Assembly.GetEntryAssembly().GetName().Name

    ご指摘の通り、呼び出し側から指定することが適切だと思いました。
    そのように実装しようと思います。
    ありがとうございます。
    2010年1月17日 6:03