C# XNA 4和外部参考
我试图实现类似于Shawn Hargreaves博客上的外部引用示例的东西 我遇到的问题是,当VS试图编译xml文件时,它会抛出一个错误,如 错误1生成内容异常:外部引用“C:\Work\Company\Project\trunk\Project.content\Sprites\Effects\EffectsPrite.tga”不是已编译的.xnb文件。 位于Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler.ContentWriter.WriteExternalReference[T](ExternalReferenceC# XNA 4和外部参考,c#,xna,xna-4.0,C#,Xna,Xna 4.0,我试图实现类似于Shawn Hargreaves博客上的外部引用示例的东西 我遇到的问题是,当VS试图编译xml文件时,它会抛出一个错误,如 错误1生成内容异常:外部引用“C:\Work\Company\Project\trunk\Project.content\Sprites\Effects\EffectsPrite.tga”不是已编译的.xnb文件。 位于Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler.Cont
1参考)
在Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler.ExternalReferenceWriter中
1.Write(ContentWriter输出,ExternalReference1值)
位于Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler.ContentTypeWriter
1.Write(ContentWriter输出,对象值)
在Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler.ContentWriter.InvokeWriter[T](T值,ContentTypeWriter)
位于Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler.ContentWriter.WriteObject[T](T值)
在Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler.ContentWriter.WriteSharedResources()中
在Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler.ContentWriter.FlushOutput()中
位于Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler.ContentCompiler.Compile(流输出、对象值、TargetPlatform TargetPlatform、GraphicsProfile targetProfile、布尔压缩内容、字符串根目录、字符串引用位置路径)
位于Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.SerializeOutputAsset(BuildItem项、对象assetData、字符串outputFilename)
位于Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.SerializeAsset(BuildItem项,对象assetData)
位于Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.BuildAssetWorker(BuildItem)
位于Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.BuildAsset(BuildItem项目)
在Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.RunTheBuild()上
在Microsoft.Xna.Framework.Content.Pipeline.Tasks.BuildContent.RemoteProxy.RunTheBuild(BuildCoordinatorSettings设置、TimestampCache TimestampCache、ITaskItem[]sourceAssets、String[]和outputContent、String[]和RebuildContent、String[]和intermediates、Dictionary2和dependencyTimestamps、KeyValuePair
2[]和warnings)C:\Work\Company\Project\trunk\Project.Content\Sprites\Effects\AtlasAuto.xml项目
我应该如何处理Xml文件引用的文件?假设它与xml文件位于同一文件夹中,
我曾尝试:
有什么想法吗?如果没有看到XML和项目布局,很难说,但我相信可能是这样的: 您的方法看起来不错,但问题是您还需要构建此纹理文件。ExternalReference可以指向源文件(如.jpg或.fx),也可以指向已编译的.xnb文件。通常情况下,您希望管道开始处输入的数据指向源文件,但另一端输出的数据需要指向编译后的.xnb文件,以便将这些文件加载到游戏中。 实现这一点最常见的方法是使用自定义处理器,该处理器接收对源资产的引用,要求编译此资产,并更改引用以指向其最终编译版本。例如(在处理器中):
material.Texture=context.BuildAsset(material.Texture,“TextureProcessor”)代码>
此处引用(在第二篇文章中):
不看XML和项目布局很难说,但我相信可能是这样的:
您的方法看起来不错,但问题是您还需要构建此纹理文件。ExternalReference可以指向源文件(如.jpg或.fx),也可以指向已编译的.xnb文件。通常情况下,您希望管道开始处输入的数据指向源文件,但另一端输出的数据需要指向编译后的.xnb文件,以便将这些文件加载到游戏中。
实现这一点最常见的方法是使用自定义处理器,该处理器接收对源资产的引用,要求编译此资产,并更改引用以指向其最终编译版本。例如(在处理器中):
material.Texture=context.BuildAsset(material.Texture,“TextureProcessor”)代码>
此处引用(在第二篇文章中):
我怀疑xml内容中的外部引用不能指向源资产
确保所引用的项也包含在内容项目中
不要在文件名中包含文件扩展名
它的路径应该是相对于xml文件的位置的(我不是100%确定的,如果没有找到它,也可以尝试相对于内容项目的根)
我怀疑xml内容中的外部引用不能指向源资产
确保所引用的项也包含在内容项目中
不要在文件名中包含文件扩展名
它的路径应该是相对于xml文件的位置的(我不是100%确定的,如果没有找到它,也可以尝试相对于内容项目的根)