如何在Visual Studio 2012上安装XNA游戏工作室?

196

是否可以使用Visual Studio 2012创建XNA游戏?


1
是的,查看此网站以获取更多信息:http://www.c-sharpcorner.com/UploadFile/iersoy/developing-xna-apps-in-visual-studio-2012without-xna-gs/。 - pedrofernandes
@pho3nix:你应该添加一个答案,总结所描述的过程,因为它可能是一个有效的解决方法。 - Steve B
@Christopher Horenstein:你在VS 2013上测试过吗? - Steve B
@SteveB 是的,我已经在VS 2013和Windows 8.1上运行它了。没有遇到任何问题,只需要按照答案中提到的更改版本号即可。 - Christopher Horenstein
4个回答

193

是的,通过一些调整是可能的。不幸的是,您仍然需要安装VS 2010。

  1. 首先,安装XNA Game Studio 4.0。最简单的方法是安装包含所有必需内容的Windows Phone SDK 7.1

  2. 通过以管理员身份打开命令提示符并执行以下命令(如果不是x64计算机且默认路径不同,则可能会有所不同),将XNA游戏扩展从VS 10复制到VS 11:

    xcopy /e "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft\XNA Game Studio 4.0" "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\XNA Game Studio 4.0"

  3. 以管理员身份运行记事本,然后在刚创建的目标目录中打开extension.vsixmanifest

  4. 升级支持的产品版本以匹配新版本(或复制整个VisualStudio元素并更改Version属性,如@brainslugs83在评论中所说):

    <SupportedProducts>
      <VisualStudio Version="11.0">
        <Edition>VSTS</Edition>
        <Edition>VSTD</Edition>
        <Edition>Pro</Edition>
        <Edition>VCSExpress</Edition>
        <Edition>VPDExpress</Edition>
      </VisualStudio>
    </SupportedProducts>
    
  5. 不要忘记在 %localappdata%\Microsoft\VisualStudio\12.0\Extensions 中清除 / 删除缓存。

  6. 你可能需要运行命令告诉 Visual Studio 可用新扩展。如果看到“访问被拒绝”消息,请尝试以管理员身份启动控制台。

  7. "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe" /setup
    

此方法已在Windows游戏中测试过,但未在WP7或Xbox游戏中测试。

[编辑] 根据Jowsty的说法,这也适用于XBox 360游戏。

[适用于Visual Studio 2013和Windows 8.1的编辑] 请参阅此处的文档以在Windows 8.1上安装Windows Phone SDK 7.1。在所有这些步骤中,将 VS 版本号 11.0 替换为 12.0,它们仍然可以正确地工作。


10
对我来说这不起作用。我在Win7 x64上有VS2010终极版,可以创建和操作XNA 4项目。我今天安装了VS2012终极RC版,按照上述步骤进行,但VS仍然无法打开XNA应用程序。有什么想法吗?我已经重新启动了计算机,单脚站立等方法。 - 3Dave
2
是的,它们在那里。@RickMartin的建议使XNA项目出现了,但是当我尝试创建新游戏时,出现了一个错误,抱怨无法加载XNA.Framework。唉。 - 3Dave
2
不需要注册表垃圾。Steve忘记提到您还需要删除缓存的扩展文件,否则VS将无法检测到更改。请参见我的答案:https://dev59.com/Emkw5IYBdhLWcg3wwNN5#VoXinYgBc1ULPQZF6PiR - Tinco
7
顺便说一句,这个解决方案也适用于Xbox 360。我刚试过了。 - Jwosty
1
这对我有效。提醒一下,您不必更改现有VisualStudio元素上的Version属性为“11.0”,而是可以复制和粘贴它(即,使您拥有两个具有完全相同内容的Visual Studio元素),一个说10.0,另一个说11.0。然后您可以将同一个.xml文件用于2010和2012年。对我很有效。 - BrainSlugs83
显示剩余17条评论

65

当我正坐在这里试图让Windows 8.1 / VS2012与XNA友好地协作时,你发布了这篇文章。我只能说,它很有效。干得好,谢谢。 - Gareth
这无疑是正确的答案。谢谢。也感谢产品团队为最新的开发工具升级了这个框架。 - Steve B
1
这是通过合法手段创建的吗? - Justin Skiles
太棒了。虽然我很懒,但我仍然保留着2010年的副本,以便在想要玩弄XNA时使用。这个安装程序轻松地在Win7/VS2012上快速安装。现在我可以删除我的副本并重新调整我的一个旧项目。非常感谢! - Madmenyo
@MsXNA,干得好,顺便问一下...这个合法吗? - Pacerier
显示剩余2条评论

38

我发现另一个问题,由于扩展程序被缓存在本地AppData文件夹中,因此XNA扩展程序从未加载。

您需要从%LocalAppData%\Microsoft\VisualStudio\11.0\Extensions文件夹中删除extensionSdks.en-US.cacheextensions.en-US.cache文件。这些文件会在下次启动时重新生成。

如果您需要访问Visual Studio启动日志以调试发生的情况,请从C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE目录(假设您在64位计算机上)运行devenv.exe /log命令。生成的日志文件位于以下位置:

%AppData%\Microsoft\VisualStudio\11.0\ActivityLog.xml


7
你好,我想告诉你我的指南在VS2012上似乎不再起作用了,只是清除缓存是不够的。完全删除缓存的方法是从扩展管理器中安装另一个扩展程序(我更新了NuGet)。 - Tinco
谢谢Tinco,更新NuGet(或其他扩展)也适用于VS2013。 - fundead

31

关于如何设置Express版本存在一些混乱。使用Windows桌面版(VS Express 2012),我按照Steve BRick Martin的回答指示,但有以下修改:

  • 第2步,将文件复制到"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\WDExpressExtensions\Microsoft\XNA Game Studio 4.0"而非"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\XNA Game Studio 4.0"
  • 第4步,在进行更改后添加一行<Edition>WDExpress</Edition>(你应该能够看到它的适用之处)
  • 第5步,将devenv.exe替换成WDExpress.exe
  • 在Rick Martin的步骤中,将"%LocalAppData%\Microsoft\VisualStudio\11.0\Extensions"替换为"%LocalAppData%\Microsoft\WDExpress\11.0\Extensions"

自那以后我并没有做很多工作,但我成功地创建了一个新的游戏项目,目前看起来很好。


1
太好了!如果你按照这些步骤操作,但是项目模板图标(在应用程序中)显示为普通的灰色图标而不是彩色的XNA图标;并且你遇到各种错误,比如“项目子类型不受支持”或“尝试加载程序集[...] XNA”,请清除扩展缓存(如Rick Martin所述),然后再次按照这些说明操作,确保在运行WDExpress.exe /setup之前将<Edition>WDExpress</Edition>添加到extension.vsixmanifest中。 - cod3monk3y

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接