Cześć.
Mam pewien problem. Napisałem apkę pod ASP .Net Core, która działa jako serwis pod Windowsem. Aplikacja ta ma za zadanie uruchomić mi inną aplikację WPF'a.
Problem polega na tym że w trybie debugowania wszystko działa, natomiast po publikacji owa aplikacja WPF się nie odpala.
Oto kod:
//Tworzę sobie obiekt nowej aplikacji: public Application app { get; set; }
public class AplicationInstance: SingletonExtension<AplicationInstance>
{
public SessionOptions FTPSessionOptions { get; set; }
public string FTPFingerprint { get; set; }
public List<FileModel> CurrentFiles;
public List<FileModel> OldFiles;
public ObservableCollection<FileModel> DifrentFiles;
private AplicationInstance()
{
CurrentFiles = new List<FileModel>();
OldFiles = new List<FileModel>();
DifrentFiles = new ObservableCollection<FileModel>();
StartNewAplicationThread();
Task.Delay(1000).Wait();
}
public Application app { get; set; }
public void DispatchToApp(Action action)
{
app.Dispatcher.Invoke(action);
}
[STAThread]
private void StartNewAplicationThread()
{
var appthread = new Thread(new ThreadStart(() =>
{
try
{
app = new Application();
app.ShutdownMode = ShutdownMode.OnExplicitShutdown;
app.Run();
}
catch (Exception ex)
{
var t = ex.Message; ;
}
}));
appthread.SetApartmentState(ApartmentState.STA);
appthread.Start();
appthread.Name = "NSP Files -> All File Browser " + DateTime.Now;
}
}
Następnie w innej klasie wywołuję sobie metodę DispatchToApp(()=>{....}) np:
private static void StartWpfWindows()
{
WPFStartModel _newWPFApplication = new WPFStartModel();
_newWPFApplication.Title = "xxx";
_newWPFApplication.Files = AplicationInstance.Instance.DifrentFiles.ToList();
AplicationInstance.Instance.DispatchToApp(() => {
var appWindow = new WPFAplication.FileListWindow(_newWPFApplication);
appWindow.Show();
});
}
Klasa FileListWindow dziedziczy po System.Windows.Window
Jakieś pomysły / rady ?