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 を含む) を 1 つまたは複数のユーザー コントロール ライブラリに移動することです。次に、メインの EXE がこれらのコントロールをロードします。

于 2013-01-22T17:26:22.640 に答える
1

別のアプリケーションオブジェクトを使用すると、プロセスを直接制御できないため、多くの問題が発生する可能性があります。これを回避し、代わりに単純な関数/メソッド呼び出しを使用する必要があります。これらは問題なく機能し、DLLの目的です。実際、私は実際、これはあなたが想像した方法では不可能だと思います。

everbodyのようにDLLを使用すると、多くの利点があります。コードの99%をDLLに移動し、プライマリエントリポイント(EXEファイル)を完全に静的にすることができます。アプリケーションオブジェクトをいじる必要はありません。

于 2013-01-22T17:20:07.507 に答える