我们每周多次更新我们的WPF应用程序,这是一个痛点,因为客户被反复要求让exe通过他们的防火墙。
为了解决这个问题,我将尝试从exe中获取大部分代码(包括xaml),因此exe永远不会改变。
以下方法似乎有效,有什么理由不这样做吗?例如有多个Application对象可以吗?
项目:TestWpfSeperateCodeFromExe
namespace TestWpfSeperateCodeFromExe
{
public class App
{
// Entry point method
[STAThread]
public static void Main(string[] args)
{
AppView.Main(args);
}
}
}
项目:查看
namespace View
{
public class AppView : Application
{
// Entry point method
[STAThread]
public static void Main(string[] args)
{
var app = new AppView();
app.Run();
}
public AppView()
{
new MainWindow().Show();
}
}
}
答案 0 :(得分:2)
更好的方法是将代码(包括XAML)移动到一个或多个用户控件库。那么你的主要EXE就会加载这些控件。
答案 1 :(得分:1)
使用另一个应用程序对象很可能会破坏很多东西,因为你无法直接控制进程 - 你应该避免使用简单的函数/方法调用,这些工作完美无缺,那就是DLL的用途。 事实上,我实际上认为这不可能以你想象的方式实现。
使用像everbody一样的DLL确实有很多优点,你可以将99%的代码移动到DLL中,并使主要入口点(EXE文件)绝对静态,不需要乱用应用程序 - 对象