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

わんくま同盟

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

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


(過去ログ 152 を表示中)
■88257 / )  Re[1]: DLLの参照設定を確認する方法
□投稿者/ 魔界の仮面弁士 (1782回)-(2018/08/15(Wed) 16:06:16)
No88255 (タランティーノ さん) に返信
> もしそのDLLがexeファイルと同じフォルダーにない場合
グローバルアセンブリキャッシュに配置する方法もありますね。

開発環境の場合は、[参照の追加] ダイアログ ボックスへの追加のために
下記のエントリを利用できます。

https://support.microsoft.com/ja-jp/help/306149/

[HKEY_CURRENT_USER\Software\Microsoft\.NETFramework\AssemblyFolders\タランティーノ]
@="C:\\Example\\タランティーノ\\"


> 予め必要なDLLが揃っているかどうか確認したいのですが
まずはアプリのインストーラーを見直すべきかと思いますが、
XCOPY 配置時に漏れが出た場合の調査などで必要ということでしょうか。


> どのようなコードを書けば良いですか?
試しに作ってみました。コマンドライン引数に EXE のフルパスを渡してみてください。

Imports System.Reflection
Public Module Module1
  Public Sub Main(args As String())
    Console.Clear()
    Console.BackgroundColor = ConsoleColor.Black
    Console.ForegroundColor = ConsoleColor.White
    For Each file As String In args
      Console.Write("ファイルパス:")
      Console.ForegroundColor = ConsoleColor.Green
      Console.WriteLine(file)
      Console.ForegroundColor = ConsoleColor.White
      Console.Write("アセンブリ名:")
      Try
        Dim asm = Assembly.LoadFile(file)
        Console.ForegroundColor = ConsoleColor.Cyan
        Console.WriteLine(asm.FullName)
        Console.ForegroundColor = ConsoleColor.White
        Dim ans = asm.GetReferencedAssemblies()
        Dim l = ans.Length.ToString()
        Dim ls = l.Length.ToString()
        For n = 0 To ans.Length - 1
          Console.Write("参照{0," & ls & "}/" & l & ":", n + 1)
          Dim an = ans(n)
          Console.ForegroundColor = ConsoleColor.DarkGreen
          Console.WriteLine(an.Name)
          Try
            Console.ForegroundColor = ConsoleColor.Yellow
            Dim a = Assembly.Load(an)
            Console.WriteLine(vbTab & a.Location)
          Catch ex As Exception
            Console.ForegroundColor = ConsoleColor.Magenta
            Console.WriteLine(vbTab & "参照不可")
          End Try
          Console.ForegroundColor = ConsoleColor.White
        Next
      Catch ex As Exception
        Console.ForegroundColor = ConsoleColor.Red
        Console.WriteLine("ロード失敗")
        Console.ForegroundColor = ConsoleColor.White
      End Try
      Console.WriteLine(StrDup(Console.BufferWidth - 1, "-"c))
    Next
    Console.ReadKey()
    Console.ResetColor()
  End Sub

End Module
返信 編集キー/


管理者用

- Child Tree -