5

私の友人は、2つのソリューションを含むVS2010プロジェクトを送ってくれました。1つは1つのCPPファイルを含み、もう1つはC#WPFプロジェクト(1つのXAMLと1つのCS)を含みます。VS2010を使用した彼のコンピューターでは、すべてが正常に機能しています。彼がプロジェクトをビルドして実行すると、メインのXAMLウィンドウが想定どおりに表示されます。

コンピューターでVS2012を使用して同じことを行おうとすると、プロジェクトのビルドに問題はありません。しかし、実行しても何も起こりません。C#コードにいくつかのブレークポイントを追加し、コードが実行されていることに気付きましたが、ウィンドウが表示されません。そのため、コードが実行されるとすぐに、アプリはXAMLインターフェイス内のユーザー入力を待つのではなく終了します。

私はこれまでこの問題に直面したことはありませんでした。通常、VS2010からVS2012への移行は非常にうまく機能します。ここでも、すべてが機能しているように見えます...プロジェクトの実行時にXAMLウィンドウが表示されることを除いて、これは非常に煩わしいものです。

誰かがそこで何が起こっているのかについて何か考えがありますか?ここではおそらく本当に基本的なものが欠けていますが、ソリューションまたはプロジェクトのプロパティに、プロジェクトの開始時にXAMLウィンドウを確実に実行するのに役立つ設定がありません。

4

1 に答える 1

0

注意すべき点の1つは、4.5コンパイラがforeachループのラムダのセマンティクスを変更したため、アプリケーションがこれにつまずいた可能性があることです。ここを参照してください:https ://connect.microsoft.com/VisualStudio/feedback/details/732657/c-5-compiler-doesnt-respect-the-semantics-of-the-foreach-range-variable-when-langversion-5

基本的にあなたがこのようなものを持っていた場合:

List<Action<int>> actions = new List<Action<int>>();
foreach (var x in new[] { 10, 20, 30 })
{
   actions.Add(() => Console.WriteLine("x = {0}", x);
}

actions.ForEach(a => a());

4.0と4.5のどちらでコンパイルされたかによって、異なる結果が得られます。ビルドマシンがまだ4.0であり、開発マシンをVS 2012にアップグレードしたため、これに少しつまずきました。

于 2012-10-25T12:20:44.847 に答える