将代码分离到DLL中远离exe

时间:2013-01-22 17:09:25

标签: .net wpf

我们每周多次更新我们的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();
        }
    }
}

2 个答案:

答案 0 :(得分:2)

更好的方法是将代码(包括XAML)移动到一个或多个用户控件库。那么你的主要EXE就会加载这些控件。

答案 1 :(得分:1)

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

使用像everbody一样的DLL确实有很多优点,你可以将99%的代码移动到DLL中,并使主要入口点(EXE文件)绝对静态,不需要乱用应用程序 - 对象