4

ここ StackOverflow でDale Ragan によって説明されている Microsoft.VisualBasic dll を使用したレシピを使用して、単一インスタンス アプリにしようとする WPF プロジェクトがあります。

フレームワーク 4.5 を使用して Visual Studio 2013 でこれを行うと、コンパイル中に同じエラーが 2 倍になります: 各エントリ ポイントに対して「... 定義された複数のエントリ ポイントがあります...」。次に、プロジェクトプロパティの「アプリケーション」タブの「スタートアップオブジェクト」項目のコンボボックスの選択肢に両方のエントリポイントが表示されると思いました。しかし、それは空です。「スタートアップオブジェクト」コンボボックスが空である理由と、エントリポイントを設定する方法は? マイクロソフトのバグでしょうか?

追加情報: - エントリ ポイントを持つ 2 つのファイルは "App.g.cs" (自動生成) であり、新しく定義したエントリ ポイントを持つクラス - メイン: "EntryPoint.cs"

4

7 に答える 7

4

申し訳ありませんが、皆さん、

問題は消えました。Visual Studio を再起動しましたが、同じ動作でした。マイクロソフトにバグとして送信する新しいプロジェクトを作成しましたが、正常に機能していました。次に、テスト プロジェクトからスタートアップ クラスをコピーしたところ、バグが消えました ????????? 理解できない。

于 2014-03-20T14:36:45.237 に答える
1

次の手順に従うことができます (EntryPoint の場合)。

  • ソリューション、[プロパティ]、[共通プロパティ]、[スタートアップ プロジェクト] を右クリックし、そこでスタートアップ プロジェクトを選択します。
  • app.xaml を開き、StartUpUri を Main XAML ファイルに設定します。
  • WPF プロジェクトをアンロードし、その後編集します。

App.xaml.cs ファイルには、次のコード行を入れることができます。

using System.Diagnostics;
...
Process[] activeProcess = Process.GetProcessByName(Process.GetCurrentProcess().ProcessName);
if (activeProcess.Length == 1)
{
    Application.Run(new YOUR_MAIN_XAML_CLASS_HERE());
}
else
{
    MessageBox.Show("You already have an instance of this program");
}

それが役に立てば幸い

于 2014-03-20T14:10:38.127 に答える