c# - reparar - dllkit gratis
¿Puedo detectar un error dll faltante durante la carga de la aplicación en C#? (2)
Extendiendo la respuesta de Josh.
Los ensamblajes en .Net se cargan a pedido por el CLR. Normalmente, no se intentará una carga de ensamblaje hasta que un método sea JIT''d que use un tipo de ese ensamblaje.
Si no puede detectar la falla de carga del ensamblaje con un bloque de prueba / captura en el método principal, es probable que esté usando un tipo del ensamblaje dentro de la prueba / captura. Así que la excepción se produce antes de que el método principal se ejecute realmente.
Intente colocar todo el código del método principal en una función diferente. Luego, llama a esa función dentro del bloque try / catch y deberías ver la excepción.
¿Es posible detectar la excepción cuando no se puede encontrar un .dll referenciado?
Por ejemplo, tengo un proyecto de C # con una referencia a una DLL de terceros; Si ese dll no se puede encontrar, se lanza una excepción. La excepción es una excepción System.IO.FileNotFoundException, pero no puedo determinar dónde atraparla. El siguiente código no parece funcionar:
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
try
{
// code goes here
}
catch (Exception exc)
{
MessageBox.Show(exc.ToString());
}
}
}
Puede usar AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
}
Para buscar manualmente el conjunto si no puede encontrarlo automáticamente.