我玩Monogame并且无法添加字体。 使用MonoGame Pipeline工具添加字体时,我无法再构建项目了。
Visual Studio停止并出现以下错误:
Der Befehl "" C:\ Program Files(x86)\ MSBuild \ MonoGame \ v3.0 \ Tools \ MGCB.exe" /@:"C:\dev\Mini\Mini\Content\Content.mgcb" /平台:WINDOWS / outputDir:" C:\ dev的\赠送\赠送\内容\ BIN \ Windows和#34; / intermediateDir:" C:\ dev的\赠送\赠送\内容\ OBJ \ Windows和#34; /安静" wurde mit dem Code 1 beendet。 ' FontDescriptionProcessor'有意想不到的
(抱歉,它的德语,但我认为你可以理解这个问题;))
当我执行错误抛出命令时,我得到一个更有帮助的错误:
C:\ dev \ Mini \ Mini \ Content>" C:\ Program Files (86)\的MSBuild \ MonoGame \ 3.0 \工具\ MGCB.exe" /@:"C:\dev\Mini\Mini\Content\Content.mgcb" /平台:WINDOWS / outputDir:" C:\ dev的\赠送\赠送\内容\ BIN \ Windows和#34; / intermediateDir:" C:\ dev的\赠送\赠送\内容\ OBJ \ Windows和#34;建立开始 07.08.2015 23:15:43
跳过C:/dev/Mini/Mini/Content/Game/Character.PNG跳过 C:/dev/Mini/Mini/Content/SplashScreen/splashScreenGame.png跳过 C:/dev/Mini/Mini/Content/Game/Background.PNG C:/dev/Mini/Mini/Content/fonts/default.spritefont C:/dev/Mini/Mini/Content/fonts/default.spritefont:错误:处理器 ' FontDescriptionProcessor'意外失败! System.ArgumentException:Illegales Zeichen im Pfad。北 System.IO.Path.CheckInvalidPathChars(String path,Boolean checkAdditional)bei System.IO.Path.IsPathRooted(String path)
北 Microsoft.Xna.Framework.Content.Pipeline.Processors.FontDescriptionProcessor.FindFontFileFromFontName(字符串 fontName,String fontDirectory)bei Microsoft.Xna.Framework.Content.Pipeline.Processors.FontDescriptionProcessor.Process(的FontDescription input,ContentProcessorContext context)bei Microsoft.Xna.Framework.Content.Pipeline.ContentProcessor`2.Microsoft.Xna.Framework.Content.Pipeline.IContentProcessor.Process(对象 input,ContentProcessorContext context)bei MonoGame.Framework.Content.Pipeline.Builder.PipelineManager.ProcessContent(PipelineBuildEvent pipelineEvent)跳绳 C:/dev/Mini/Mini/Content/SplashScreen/SplashScreen.xml跳过 C:/dev/Mini/Mini/Content/Game/Game.xmlBuild 3成功,1失败。
时间00:00:00.19。
我理解,路径C:/dev/Mini/Mini/Content/fonts/default.spritefont
是无效的,但我没有看到任何无效字符。 .spritefont文件是使用MonoGame工具生成的,不会导入。我错过了什么吗?
我在Windows 10上,MonoGame Pipeline Tool的版本为3.5.0.465,而MGCB.exe的版本为3.5.0.465。
编辑:当我自己检查路径时,一切看起来都不错,将整个项目移动到另一个硬盘并没有任何帮助。
Edit2:Okey。看起来它不是我的字体路径。它是从注册表加载的路径。 registryKey.GetValue(current).ToString();
方法中的行FindFontFileFromFontName
返回ARIAL.TTF\00\0\0\0\0\0
。我会调查并更新这个问题或回答。
答案 0 :(得分:1)
在测试后我找到了解决方案(或者我发现了问题......):
我的注册表中的某些字体路径已损坏。具有大写Date值的字体抛出错误。当您遇到类似的问题时,请查看"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Fonts"
l下的注册表,检查您选择的字体或将其更改为其他字体。我希望这个解决方案也会对你有所帮助。 (当有人知道,为什么我的注册表数据被破坏了,请告诉我。)
答案 1 :(得分:0)
我有这个错误,因为spritefont文件只是一个字体元数据定义文件,而不是我仍然在Windows中手动安装TTF字体文件的实际字体,然后构建成功,因为然后可以找到字体压缩成二进制文件。