私はShadow Copyを最初に試しています。AppDomainシャドウコピー参照されているアセンブリを含める
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ファイルに到達するまで実行がうまく、そのランニングtempディレクトリに達している:私は、次のコードを持っています。プロジェクト全体を通して参照している14-16のDLLは、この一時ディレクトリにコピーされていないため、アプリケーションが爆発します。
私には何が欠けていますか?どうすればそれらをすべてtempディレクトリにコピーすることもできますか?
すべての依存関係は、sApplicationFileと同じディレクトリにありますか? (サブディレクトリにはありません) –
はい、実行可能ファイルと同じディレクトリにあります。 – ErocM