【问题标题】:How to properly update Monogame with a Github PR如何使用 Github PR 正确更新 Monogame
【发布时间】:2013-11-12 16:39:13
【问题描述】:

嘿,

我遇到了一个小问题。当前可用的 Monogame 3.2 版本没有适用于 Windows Phone 8 的工作模板。这将导致黑屏和无法运行的应用程序。所以我去了他们的 git 中心,发现了问题 https://github.com/mono/MonoGame/pull/2089 并且有人修复了它并发布了一个拉取请求。

现在的问题是我在构建自己的版本或编辑项目模板文件方面的经验几乎为零。我得到了一些常识并开始深入研究这一切,并且已经尝试将模板文件复制到我的 Visual Studio 文件并构建项目并抛出新的 .DLL,但它都不想正常工作。我开始使用旧模板,但我需要新版本,因为我们需要在我们的游戏中使用 windows phone 8 中的横向支持。

现在是我的问题,如果有人知道正确/正确的方法来做到这一点。一个简短的总结,从哪里复制什么。

提前致谢。

【问题讨论】:

    标签: windows-phone-8 visual-studio-2013 monogame


    【解决方案1】:

    好吧,我花了一些时间,但我想出了要复制、构建、设置和运行的内容。

    您下载 .Zip 或使用您的 Github 将其拉入一个空文件夹,完成后解压缩。

    1. 在地图中打开 MonoGame.Framework 或 MonoGame.Framework。”你的 目标平台”,这将启动 Visual Studio。
    2. 构建解决方案/项目(不要忘记在 ARM、x86 和 x64(如果已启用且需要)并导航到“已提取 文件夹”/MonoGame.Framework/bin/”你的目标平台” 时间打开一个新的资源管理器并导航到您的 MonoGame 安装 默认 C:\Program Files (x86)\MonoGame\v3.0
    3. 在您提取的文件夹中导航到您的目标平台,然后 构建 MonoGame.Framework.dll 并将其复制到对面的 C:\Program 文件 (x86)\MonoGame\v3.0\Assemblies\”targeted platform”\”build”
    4. 重建您的项目/解决方案

    Gratz 你现在更新了你的 MonoGame :)

    这可以解决您的问题,但在您的手机或模拟器 DXGI 相关的初始化应用程序时,您仍然可能会遇到错误。 如果发生这种情况,请按照以下步骤操作。问题可能出在你的 SharpDX.WP8.dll 如何解决这个问题?就我而言,下载并安装最新的 SharpDX http://sharpdx.org/download/ 您还可以进一步了解如何仅下载 SharpDX.WP8.dll 和 .winmd!

    1. 导航到您的 SharpDX 安装(默认为 C:\Program Files (x86)\SharpDX) 进一步导航到 Bin\DirectX11_1-“platform”-“build”\ 并复制 SharpDX.WP8.dll 和 .winmd 到 C:\Program 文件 (x86)\MonoGame\v3.0\Assemblies\WindowsPhone\“build”
    2. 重建您的项目/解决方案(如果这仍然不起作用,您可以 需要手动将引用再次添加到 SharpDX.WP8.winmd 以获取 两个版本)

    因此,如果没问题,这应该可以解决大多数问题,但还剩下一个。在 MonoGame 3.0.x 和 3.2 之间,windows phone 游戏的项目模板发生了变化,但这在代码中并不顺利。所以我们现在要更新 Visual Studio 的项目模板。

    1. 返回您提取的 Monogame 地图并进入文件夹 “ProjectTemplates”\“你的 Visual Studio 版本”\WindowsPhone
    2. 选择所有文件并创建一个 .Zip(可以由集成的 windows 选项“发送到”)确保当您打开 .Zip 文件时,您将 立即查看所有文件,并且它们没有嵌套到文件夹中 .Zip 内
    3. 导航到 C:\Users\“您的 PC 名称”\Documents\Visual Studio 201X\Templates\ProjectTemplates\Visual C#\MonoGame 并复制您的 刚刚创建 .Zip 并覆盖现有文件。

    如果您使用不同版本的 Visual Studio,您可能必须按照这些步骤操作,因为 VS2013 中缺乏对 XNA 的支持。 现在你应该已经解决了任何可能的问题。如果您的项目仍然出现错误,请尝试重新创建一个新的(这现在将使用您刚刚复制粘贴的新更新模板并且可以工作)如果这仍然不起作用,请发布问题所在,但这一切都应该做!这些说明也应该适用于所有其他平台(至少您当然可以构建)

    【讨论】:

      【解决方案2】:

      很容易将其拉入您自己的版本。

      按照以下步骤操作:

      1. Fork Monogame 存储库
      2. 将您的版本克隆到本地计算机
      3. 找到固定代码的存储库。
      4. 在命令提示符下,移动到您的 MonoGame 文件夹,然后在您的机器上使用此行提取更改。 (分支很可能是master)

      git pull http://github.com/other/repo branch_name

      将拉取请求拉入本地分支后,只需使用 Visual Studio 构建它。

      如果您认为自己会经常这样做,也可以按照这些步骤操作。

      https://help.github.com/articles/syncing-a-fork

      【讨论】:

      • 嘿哈立德,谢谢你的回答,但我已经到了这一步。对我来说最大的问题是要构建什么项目,要在哪里复制什么 dll 以及要更改什么引用。我把它修好了,会把我的发现贴在这里。
      【解决方案3】:

      由于某种原因 MrME,我无法让您的解决方案正常工作,因为缺少一些拒绝手动添加的 SharpDX 参考。虽然您的解决方案可能有效,但如果您有耐心将代码转移到 Monogame 3.2 项目并且仍然出现黑屏,我想提出一个替代方案:

      在 GamePage.xaml 中将 DrawingSurface 设置为 DrawingSurfaceBackgroundGrid。完整的详细信息可在 GamePage.xaml 文件底部的注释说明中找到。

      来源:https://github.com/mono/MonoGame/issues/2081

      【讨论】:

      • 你遇到了什么错误?一开始我收到一个错误,如果我没记错的话,我只能添加 x86 或 ARM 版本,不能同时添加两者。但是我忘记了我是如何使用 .winmd 文件修复它们的。
      • 可能是 MonoGame 项目下载的问题。它没有 SharpDX.dll 文件,所以我尝试手动添加它们,此时它说文件版本与此项目/解决方案不兼容。如果您设法找到它,如果您可以发布该修复程序,也许会有所帮助。
      猜你喜欢
      • 2021-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-26
      • 2018-06-15
      • 2015-03-07
      • 1970-01-01
      • 2022-01-22
      相关资源
      最近更新 更多