有人知道一种方法,或者是否有可能使用一个自包含的单个文件dotnet core 3.1控制台应用程序来自动重启?我之前在其他控制台应用程序中使用以下代码完成了此操作,并且可以使用,但是不适用于我的单个文件应用程序。
相反,我得到了以下异常
Unhandled Exception: System.TypeLoadException: Could not load type 'System.Object' from assembly 'System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' because the parent does not exist.
我怀疑这是由于运行时包含在目录中,并且窗口不知道要使用它。如果我将应用程序发布为非单个文件应用程序,则使用exe可以很好地重新启动。但是,我更喜欢使用自包含的单个文件,因为它使人们可以更轻松地传输单个exe。
ProcessStartInfo info = new ProcessStartInfo
{
FileName = Environment.GetCommandLineArgs()[0],
UserName = creds.UserName,
PasswordInClearText = creds.Password,
Domain = "mydomain",
Verb = "runas"
};
// Start the process
Process.Start(info);
// Exit the current one
Environment.Exit(0);
我已经看过Application.Restart方法,但是我需要使用runas动词,因为我的应用程序正在处理kerberos令牌,并且必须在用户上下文中运行并传递提示用户的信息。
任何对此的帮助将不胜感激,我已经为此花了大约一天的时间。我找到了许多有关如何创建单个文件应用程序的文章,但没有找到如何自行重启它的文章。