c# - Visual Studio 2010 项目到 Visual Studio 2012

标签 c# c++ wpf visual-studio-2010 visual-studio

我的 friend 刚刚向我发送了一个 VS2010 项目,其中包含 2 个解决方案:一个包含一个 CPP 文件,另一个包含 C# WPF 项目(一个 XAML 和一个 CS)。使用 VS2010 在他的计算机上一切正常。当他构建并执行项目时,主 XAML 窗口会按预期显示。

当我尝试在我的计算机上使用 VS2012 执行相同操作时,我在构建项目时没有遇到任何问题。但是,当我运行它时,什么也没有发生。我在 C# 代码中添加了一些断点,我意识到代码可以运行,但窗口从未出现。因此,一旦执行了代码,应用程序就会退出,而不是在 XAML 界面中等待用户输入。

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

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

最佳答案

需要注意的一件事是 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());

会给出不同的结果,具体取决于它是用 4.0 还是 4.5 编译的。我们有点被这个绊倒了,因为我们的构建机器仍然是 4.0,我们将开发机器升级到 VS 2012。

关于c# - Visual Studio 2010 项目到 Visual Studio 2012,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13003603/

相关文章:

c++ - 调整 Qt 窗口大小时出现闪烁的白色区域

c# - StatusBar 中的 WPF ProgressBar 不会拉伸(stretch)

c# - .NET Framework 4.5 或更高版本中的 AccessViolationException

c# - 获得范围补充的最快方法是什么?

c++ - 将输入文件中的子字符串转换为 double 值?

WPF:忽略鼠标点击覆盖/装饰器,但处理 MouseEnter 事件

wpf - MVVM模式下处理WPF按钮双击

c# - 为什么 IList<T> 不包含 Length 属性?

c# - Sharepoint:是否可以在顶部导航菜单中创建子组?

C++ 大值左移