【问题标题】:SharpDX: Content Assets not foundSharpDX:未找到内容资产
【发布时间】:2014-02-25 09:24:21
【问题描述】:

如果在使用 sharpdx 工具包内容管道时找不到我的资产可能是什么问题。

sf = Content.Load<SpriteFont>("Arial16ClearType");

它们位于名为“Content”的子目录中,并在应用程序中设置:

Content.RootDirectory = "Content";

buildaction 正确设置为 Toolkitfont。 “复制到输出目录”是“不复制”。

我通过将它添加到我的 csproj 来导入构建操作

<Import Project="f:\work\github\SharpDX\SharpDX.targets" />

它总是抛出这个异常

SharpDX.Toolkit.Content.AssetNotFoundException was unhandled
  HResult=-2146233088
  Message=Content\Arial16ClearType
  Source=SharpDX.Toolkit
  StackTrace:
       at SharpDX.Toolkit.Content.ContentManager.FindStream(String assetName) in ..\..\Source\Toolkit\SharpDX.Toolkit\Content\ContentManager.cs:line 330
       at SharpDX.Toolkit.Content.ContentManager.Load(Type assetType, String assetName, Object options) in ..\..\Source\Toolkit\SharpDX.Toolkit\Content\ContentManager.cs:line 201
       at SharpDX.Toolkit.Content.ContentManager.Load[T](String assetName, Object options) in ..\..\Source\Toolkit\SharpDX.Toolkit\Content\ContentManager.cs:line 163
       at glyphrenderer.GlyphGame.LoadContent() in GlyphGame.cs:line 78
       at SharpDX.Toolkit.Game.InitializeBeforeRun() in ..\..\Source\Toolkit\SharpDX.Toolkit.Game\Game.cs:line 326
       at SharpDX.Toolkit.GameWindowDesktop.RunRenderLoop() in ..\..\Source\Toolkit\SharpDX.Toolkit.Game\Desktop\GameWindowDesktop.cs:line 340
       at SharpDX.Toolkit.GameWindowDesktop.Run() in ..\..\Source\Toolkit\SharpDX.Toolkit.Game\Desktop\GameWindowDesktop.cs:line 302
       at SharpDX.Toolkit.GamePlatform.Run(GameContext gameContext) in ..\..\Source\Toolkit\SharpDX.Toolkit.Game\GamePlatform.cs:line 133
       at SharpDX.Toolkit.Game.Run(GameContext gameContext) in ..\..\Source\Toolkit\SharpDX.Toolkit.Game\Game.cs:line 378
       at glyphrenderer.Program.Main(String[] args) in Program.cs:line 18
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: 

【问题讨论】:

    标签: c# directx sharpdx


    【解决方案1】:

    不确定“构建操作设置正确”是什么意思,但您必须使用构建操作 ToolkitFont 而不是 Content 并且不指定“复制到输出目录”,因为它是由 @987654323 完成的@ 任务。检查以这种方式配置的 Toolkit 示例中的项目。 Toolkit 任务负责将 xml/source 文件编译成二进制形式,在运行时加载。

    【讨论】:

    • 感谢您的回复。实际上这正是我所拥有的,Build Action 设置为 ToolkitFont 并且它们没有被复制到输出目录。我注意到一个细微的差别,在示例解决方案中,资产在图标上方有一点蓝色叠加层,而我的解决方案中没有。
    • 你能在你的exe的bin目录下的Content目录下查看Arial16ClearType.tkb这个文件吗?此外,当您完全编译项目时,您应该会看到类似 Compilation successful of C:\Code\SharpDX\Samples\Toolkit\Desktop\SpriteBatchAndFont\..\..\Common\SpriteBatchAndFont\Content\Arial16.xml to C:\Code\SharpDX\Samples\Toolkit\Desktop\SpriteBatchAndFont\obj\Debug\Content\Arial16.tkb 的构建输出
    猜你喜欢
    • 2011-06-06
    • 2013-06-30
    • 1970-01-01
    • 2014-12-12
    • 1970-01-01
    • 1970-01-01
    • 2014-10-10
    • 2017-08-21
    • 1970-01-01
    相关资源
    最近更新 更多