Запускать exe даже с отсутствующими зависимыми dll?

В Dotnet2.0 и более поздних версиях программа отказывается запускаться, если одна из ее зависимых (статических ссылок) DLL отсутствует.

С Dotnet1.1 и 1. отсутствуют определенные dll.

Возможно ли это без изменения исходного кода (выполняется путем применения некоторых атрибутов)?

Я не хочу вручную загружать сборки с помощью программного кода или использовать IOC-Framworks.

Обновление: с " статические ссылочные библиотеки DLL "я имею в виду противоположность динамической загрузки библиотеки DLL в моем собственном программном коде с использованием отражения и Assembly.Loadxxxx ().

Обновление 2010-12-25 Я думал о сложном. Спасибо за простое решение от @erinus:

мне просто нужно поставить try catch, и это сработало:

    using System;
    using System.IO;
    using log4net; // log4net.dll might be missing

    namespace ConsoleAppWithMissingDll
    {
        class Program
        {
            static bool dllIsInstalled = true;
            static void Main(string[] args)
            {
                Console.WriteLine("Hello missing dll");

                try
                {
                    OutputViaLog4Net("hello log4net");
                }
                catch (FileNotFoundException)
                {
                    dllIsInstalled = false;
                    Console.WriteLine("Log4net-dll not found");
                }
                Console.WriteLine("Program continued");
    #if DEBUG
                Console.WriteLine("Press any key to exit");
                Console.ReadKey();
    #endif
            }

            private static void OutputViaLog4Net(string message)
            {

                ILog logger = LogManager.GetLogger("MyLogger");

                logger.Debug(message);

            }
        }
    }
6
задан k3b 25 December 2010 в 18:05
поделиться