关于 Visual Studio 2010 SP1 的“此计算机状态不支持安装”

这几天为了社团的一个项目,需要用到 XNA,我的首选语言自然是 VB .NET 啦。(附注:我用的是 VS 2012,而且修改了 XNA Game Studio 的 extesion.vsixmanifest 让 XGS 支持 VS 2012。文件在 $(VSDir)\Common7\IDE\Extensions\Microsoft\XNA Game Studio 4.0 下。)

我先用 XNA(版本 4.0),默认不支持 VB .NET 的。于是费了好大劲从 C# 那边搬来 Content Project,未果,没有生效。大不了用 C# 呗,但是居然运行时出现“找不到支持 XNA Framework Hi-Def 配置的图形卡”错误,根本没法运行!相比之下,虽然 VB .NET 无法使用 Content Pipeline,但是至少可以通过 Texture2D.FromStream 来实现“默片”啊,还可以正常运行!

算了算了,只好找 XNA 4.0 Refresh,这个版本添加了对 VB .NET 的支持。但是要命的是,它需要 VS 2010 SP1,而一年前我一个脑残的举动(手动在“程序与功能”里卸载 VS 2010 组件,结果到了一半时蓝屏了)使得 SP1 再也安装不上了(VS 2010 可以),显示“此计算机状态不支持安装”,而且居然没说为什么。我跑到 MSDN 上去问,某 MSFT 成员说把 Collect(Microsoft .NET 性能收集器)的数据给ta,但是最终也没得出什么结果……蛋疼。(嗯嗯……忘记截屏了。)
今天再上网,努力搜,找到原因了(虽然我还没看错误报告)。VSTO!VSTO 没卸载干净,所以检查环境的时候就不能通过了。将 HKLM\SOFTWARE\Microsoft\VSTO Designtime Setup\10.0 下的所有子键删除就行了。安装成功~


补充:Texture2D.FromStream。

对于不想用 XNA 4.0 Refresh 的苦逼 VB .NET 程序猿们,如果只涉及到图像的移动等等等等,可以使用 Texture2D.FromStream。方法是 Texture2D.FromStream(GraphicDevice, (New IO.StreamReader(FileName$)).BaseStream)。(简写了哈,只是表明调用结构。)

分享到 评论