Monogame Content Pipeline没有构建spritefont - 索引超出范围?

时间:2017-05-02 16:31:43

标签: c# xna monogame

我正在使用Visual Studio Community 2017和Monogame framework 3.5。我的电脑正在运行Windows 10 64位。

我的SpriteFonts没有构建并提供此错误:

enter image description here

我的regularFont.spritefont代码:

  <?xml version="1.0" encoding="utf-8"?>
  <!--
 This file contains an xml description of a font, and will be read by the XNA
 Framework Content Pipeline. Follow the comments to customize the appearance
 of the font in your game, and to change the characters which are available 
 to draw with.
  -->
  <XnaContent 
xmlns:Graphics="Microsoft.Xna.Framework.Content.Pipeline.Graphics">
    <Asset Type="Graphics:FontDescription">

  <!--
  Modify this string to change the font that will be imported.
  -->




<FontName>Arial</FontName>


  <!--
  Size is a float value, measured in points. Modify this value to change
  the size of the font.
  -->

           <Size>12</Size>

  <!--
  Spacing is a float value, measured in pixels. Modify this value to change
  the amount of spacing in between characters.
  -->
  <Spacing>0</Spacing>

  <!--
  UseKerning controls the layout of the font. If this value is true, kerning information
  will be used when placing characters.
  -->
  <UseKerning>true</UseKerning>

  <!--
  Style controls the style of the font. Valid entries are "Regular", "Bold", "Italic",
  and "Bold, Italic", and are case sensitive.
  -->
  <Style>Regular</Style>

  <!--
  If you uncomment this line, the default character will be substituted if you draw
  or measure text that contains characters which were not included in the font.
  -->
  <!-- <DefaultCharacter>*</DefaultCharacter> -->

  <!--
  CharacterRegions control what letters are available in the font. Every
  character from Start to End will be built and made available for drawing. The
  default range is from 32, (ASCII space), to 126, ('~'), covering the basic Latin
  character set. The characters are ordered according to the Unicode standard.
  See the documentation for more information.
  -->
  <CharacterRegions>
    <CharacterRegion>
      <Start>&#32;</Start>
      <End>&#126;</End>
    </CharacterRegion>
  </CharacterRegions>
</Asset>

我已经尝试重新安装C ++包,将.TFF文件放在fonts文件夹中,重命名为Arial.tff或Arial-Regular。我尝试了很多不同的字体。

构建整个项目时出现错误:

Building Font C:\WINDOWS\Fonts\arial.ttf
1>      System.DllNotFoundException: Unable to load DLL 'freetype6.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
1>     at SharpFont.FT.FT_Init_FreeType(IntPtr& alibrary)
1>     at SharpFont.Library..ctor()
1>     at Microsoft.Xna.Framework.Content.Pipeline.Graphics.SharpFontImporter.Import(FontDescription options, String fontName)
1>     at Microsoft.Xna.Framework.Content.Pipeline.Processors.FontDescriptionProcessor.ImportFont(FontDescription options, Single& lineSpacing, Int32& yOffsetMin,     ContentProcessorContext context, String fontName)
1>     at Microsoft.Xna.Framework.Content.Pipeline.Processors.FontDescriptionProcessor.Process(FontDescription input, ContentProcessorContext context)
1>C:/Users/David/Documents/Visual Studio 2017/Projects/Cobra/Cobra/Content/fonts/hiFont.spritefont : error : Index was out of range. Must be non-negative and less than the size of the collection.
    1>  Parameter name: index

有人可以帮忙吗?这非常奇怪,因为我在运行Win7 / Visual Studio 2015的不同PC上使用了monogame,一切都很好。

1 个答案:

答案 0 :(得分:0)

我设法通过一个旧的github帖子来解决这个问题,他说要为visual studio 2012下载一个c ++更新...我认为它没有机会工作但它确实

如果您遇到此问题,请尝试下载并安装:

https://www.microsoft.com/en-NZ/download/details.aspx?id=30679