Visual Studio 2010项目到Visual Studio 2012

dnL*_*nLL 5 c# c++ wpf visual-studio-2010 visual-studio

我的朋友刚给我发了一个VS2010项目,里面有两个解决方案:一个有一个CPP文件,另一个有一个C#WPF项目(一个XAML和一个CS).使用VS2010,一切都在他的电脑上运行良好.当他构建并执行项目时,主XAML窗口显示为所谓的.

当我尝试在我的计算机上使用VS2012时,我没有问题构建项目.但是,当我运行它时,没有任何反应.我在C#代码中添加了一些断点,我意识到代码运行,但窗口永远不会出现.因此,只要代码执行完毕,应用程序就会退出,而不是等待XAML界面中的用户输入.

我之前从未遇到过这个问题,通常从VS2010到VS2012都运行得很好.在这里,一切似乎都有效......除了现在运行项目时显示的XAML窗口,这非常烦人.

有谁知道那里发生了什么?我可能在这里遗漏了一些真正的基础,但我没有看到解决方案或项目属性中的任何设置实际上可以帮助我确保在启动项目时XAML窗口运行.

Phi*_*ayr 0

需要注意的一件事是,4.5 编译器更改了 foreach 循环中 lambda 的语义,因此您的应用程序可能会因此而出错。请参阅此处: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());
Run Code Online (Sandbox Code Playgroud)

根据是用 4.0 还是 4.5 编译,会给出不同的结果。我们有点被这个问题绊倒,因为我们的构建机器仍然是 4.0,并且我们将开发机器升级到了 VS 2012。