【问题标题】:xna published project without content pipeline?xna 发布的项目没有内容管道?
【发布时间】:2011-09-06 18:20:01
【问题描述】:

我正在为 XNA 的学习目的开展一个个人项目。我在网上读到使用内容管道需要人们安装 xna 运行时。所以我决定使用 Texture2D.FromStream 加载文件。

当我从 Visual c# 运行项目时,一切都很好,但是当我发布项目并运行它时,它立即崩溃了。我不确定是否有办法查看有关崩溃的更多信息,但我认为没有。我认为这取决于不使用内容管道。

当我查看已发布项目的应用程序文件时,我只看到 .xnb 文件。并且没有我正在使用的原始 .png 和 .xml 文件。

我尝试手动将文件放入其中,但效果不佳。 这些文件都在“Projectname\bin\x86\Debug\Content”文件夹中。

有人知道吗?


编辑

我刚刚重写了我的内容管理器,以便它使用内容管道,并且已发布的项目现在可以在我的电脑上正常运行。所以我必须想办法让它在没有内容管道的情况下工作

【问题讨论】:

    标签: xna publish content-pipeline


    【解决方案1】:

    如果你使用 Texture2D.FromStream,你必须关心两个事实:

    1. 你必须改变一些资源的属性:

      • 编译操作:无
      • 复制到结果文件夹:总是

        这样,xnb 就不会被构建,而是你会得到你的资源

    2. 您必须设置适当的路径,现在您的路径中没有“bin\Debug”。

    【讨论】:

    • 感谢 #1 成功了!不知道你对 2 的意思。我应该以某种方式删除 x86 文件夹吗?顺便说一句,不使用内容管道有什么缺点吗?
    【解决方案2】:

    正如@Blau 所提到的,更改图像的属性将解决您的问题。如您所见,现在所有平台的框架都完全支持 FromStream 方法:
    http://blogs.msdn.com/b/shawnhar/archive/2010/05/10/image-codecs-in-xna-game-studio-4-0.aspx.

    至于看到错误...您总是可以在您认为引发错误的语句周围放置一个 try catch,然后将错误文本写到屏幕上以便您可以看到它。类似的东西

    try
    {
        //The offending code
    }
    catch(Exception ex)
    {
        WriteError(ex.Message);
    }
    

    【讨论】:

    • 是的,我在想这个,只是想知道我是否有一个“真正的”调试替代方案或某种日志。
    猜你喜欢
    • 2012-02-11
    • 1970-01-01
    • 1970-01-01
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    • 2022-09-29
    • 2021-12-31
    • 1970-01-01
    相关资源
    最近更新 更多