1

我们每周多次更新我们的 WPF 应用程序,这是一个痛点,因为反复要求客户让 exe 通过他们的防火墙。

为了解决这个问题,我将尝试从 exe 中取出大部分代码(包括 xaml),因此 exe 永远不会改变。

下面的方法似乎有效,有什么理由我不应该这样做吗?例如可以有多个应用程序对象吗?

项目: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();
        }
    }
}
4

2 回答 2

2

一种更好的方法是将您的代码(包括 XAML)移动到一个或多个用户控件库。然后您的主 EXE 将只加载这些控件。

于 2013-01-22T17:26:22.640 回答
1

使用另一个应用程序对象很可能会破坏许多事情,因为您无法直接控制进程 - 您应该避免这种情况并使用简单的函数/方法调用,这些工​​作完美无缺,这就是 DLL 的用途。事实上,我实际上认为这不可能以你想象的方式实现。

像everbody 那样使用 DLL 有很多优点,您可以将 99% 的代码移动到 DLL 中,并使主要入口点(EXE 文件)绝对静态,无需摆弄应用程序对象。

于 2013-01-22T17:20:07.507 回答