包括引用的程序集

本文关键字:程序集 引用 包括 | 更新日期: 2023-09-27 18:17:48

我第一次尝试阴影复制。我有以下代码:

static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        var sApplicationDirectory = Application.StartupPath;
        var sAppName = "propane";
        AppDomainSetup oSetup = new AppDomainSetup();
        string sApplicationFile = null;
        // Use this to ensure that if the application is running when the user performs the update, that we don't run into file locking issues.
        oSetup.ShadowCopyFiles = "true";
        oSetup.ApplicationName = "MyApplication";
        // Generate the name of the DLL we are going to launch
        sApplicationFile = System.IO.Path.Combine(sApplicationDirectory, sAppName + ".exe");
        oSetup.ApplicationBase = sApplicationDirectory;
        oSetup.ConfigurationFile = sApplicationFile + ".config";
        oSetup.LoaderOptimization = LoaderOptimization.MultiDomain;
        // Launch the application
        AppDomain oAppDomain = AppDomain.CreateDomain(sAppName, AppDomain.CurrentDomain.Evidence, oSetup);
        oAppDomain.SetData("App", sAppName);
        oAppDomain.ExecuteAssembly(sApplicationFile);
        // When the launched application closes, close this application as well
        Application.Exit();
        //Application.EnableVisualStyles();
        //Application.SetCompatibleTextRenderingDefault(false);
        //Application.Run(new Form1());
    }
}

可执行文件到达临时目录很好,它运行,直到我到达一个引用的dll。我在整个项目中引用的14-16个dll没有被复制到这个临时目录,导致应用程序爆炸。

我错过了什么?如何将它们全部复制到临时目录?

包括引用的程序集

我们的应用程序中几乎有相同的代码,它运行良好。

唯一的区别是我们的main方法也用 来装饰。
[LoaderOptimization(LoaderOptimization.MultiDomain)]