我发布此内容基本上是继续关闭的主题:
"Error trying to open a VS 2010 project in VS 2012 : Type universe cannot resolve assembly"我已经深入研究了这个问题并缩小了一些范围,所以希望可以恢复讨论。
我正在使用VS 2012(我没有比较2010年)。我的解决方案"TWConsole"
在星期五工作正常,而截至周二则没有。两个版本都可以编译和运行,但在设计器中,项目中没有XAML文件可以打开而不会崩溃。但是,在同一解决方案中从不同项目打开XAML可以正常工作。关于这个问题我搜索过的所有内容都会导致某人处理第三方程序集。
但是,在我的情况下,无法解析的程序集是我自己的 - 由构建生成的程序集。
有趣的是,我发现通过“秘密”替换bin \ Debug文件夹中的TWConsole.exe与上一个星期一的构建,一切正常! ...也就是说,直到我重建解决方案,并且exe被替换,然后XAML设计器开始崩溃。
所以有一些与我添加的新代码相关的东西,它以某种方式“感染”主程序集。与此同时,在任何人都可以通过解决方案解决问题之前,我将从最后工作的解决方案开始,一次只添加一行代码,直到问题出现,以便确定原因。
由于
编辑: 我已经能够将问题的根源缩小到一行代码:
public static bool GetFavWashPkgs(out List<WashPkg> wPkgs)
如果我删除“out”关键字,然后编译,则会解决设计器崩溃问题。同样适用于“ref”关键字 - 在这种情况下也是禁忌。我试过一个小时在一个更基本的测试中使用测试类和测试函数重新创建这个异常,但无济于事。我可以报告的是,这个“敏感”函数被重载,自定义类WashPkg具有[serializable()]属性,并且此函数所在的类是静态的。如果我修改函数声明以使List的类型为int而不是WashPkg,则问题也会得到解决。 所以在这一点上,为什么设计师不喜欢这个功能声明仍然是一个谜。