我试图在 Shawn Hargreaves 博客上实现类似于外部引用示例的东西
我遇到的问题是,当 VS 尝试编译 xml 文件时,它会抛出一个错误,例如
错误 1 构建内容引发 ArgumentException:外部引用“C:\Work\Company\Project\trunk\Project.Content\Sprites\Effects\EffectsSprite.tga”不是已编译的 .xnb 文件。在 Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler.ContentWriter.WriteExternalReference[T](ExternalReference
1 reference) at Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler.ExternalReferenceWriter
1.Write(ContentWriter 输出,ExternalReference1 value) at Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler.ContentTypeWriter
1.Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler.ContentWriter.InvokeWriter[T](T value, ContentTypeWriter writer) 在 Microsoft.Xna.Framework.Content.Pipeline.Serialization 中写入(ContentWriter output, Object value) .Compiler.ContentWriter.WriteObject[T](T 值) 在 Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler.ContentWriter.WriteSharedResources() 在 Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler.ContentWriter。 Microsoft.Xna.Framework.Xna.Framework.Content.Pipeline.Serialization.Compiler.ContentCompiler.Compile 的 FlushOutput()(流输出,对象值,TargetPlatform targetPlatform,GraphicsProfile targetProfile,Boolean compressContent,String rootDirectory,String referenceRelocationPath)在 Microsoft.Xna.Framework。 Content.Pipeline.BuildCoordinator。Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.SerializeAsset(BuildItem item, ObjectassetData) 在 Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.BuildAssetWorker(BuildItem item) 的 SerializeOutputAsset(BuildItem item, ObjectassetData, String outputFilename)在 Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.BuildAsset(BuildItem item) 在 Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.RunTheBuild() 在 Microsoft.Xna.Framework.Content.Pipeline.Tasks.BuildContent.RemoteProxy .RunTheBuild(BuildCoordinatorSettings 设置, TimestampCache timestampCache, ITaskItem[] sourceAssets, String[]& outputContent, String[]& rebuiltContent, String[]& 中间体, DictionaryMicrosoft.Xna.Framework.Content.Pipeline.BuildCoordinator.BuildAssetWorker(BuildItem item) 在 Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.BuildAsset(BuildItem item) 在 Microsoft.Xna 的 BuildCoordinator.SerializeAsset(BuildItem item, ObjectassetData) .Framework.Content.Pipeline.BuildCoordinator.RunTheBuild() 在 Microsoft.Xna.Framework.Content.Pipeline.Tasks.BuildContent.RemoteProxy.RunTheBuild(BuildCoordinatorSettings 设置, TimestampCache timestampCache, ITaskItem[] sourceAssets, String[]& outputContent, String[ ]& rebuiltContent, String[]& 中间体, 字典Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.BuildAssetWorker(BuildItem item) 在 Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.BuildAsset(BuildItem item) 在 Microsoft.Xna 的 BuildCoordinator.SerializeAsset(BuildItem item, ObjectassetData) .Framework.Content.Pipeline.BuildCoordinator.RunTheBuild() 在 Microsoft.Xna.Framework.Content.Pipeline.Tasks.BuildContent.RemoteProxy.RunTheBuild(BuildCoordinatorSettings 设置, TimestampCache timestampCache, ITaskItem[] sourceAssets, String[]& outputContent, String[ ]& rebuiltContent, String[]& 中间体, 字典Microsoft.Xna.Framework.Content.Pipeline.Tasks.BuildContent.RemoteProxy.RunTheBuild(BuildCoordinatorSettings settings, TimestampCache timestampCache, ITaskItem[] sourceAssets , String[]& outputContent, String[]& rebuiltContent, String[]& 中间体, DictionaryMicrosoft.Xna.Framework.Content.Pipeline.Tasks.BuildContent.RemoteProxy.RunTheBuild(BuildCoordinatorSettings settings, TimestampCache timestampCache, ITaskItem[] sourceAssets , String[]& outputContent, String[]& rebuiltContent, String[]& 中间体, Dictionary2& dependencyTimestamps, KeyValuePair
2[]& 警告)C:\Work\Company\Project\trunk\Project.Content\Sprites\Effects\AtlasAuto.xml 项目
我应该如何处理 Xml 文件引用的文件?鉴于它与 xml 文件位于同一文件夹中,我尝试:
- 包含在内容项目中并使用 Texture - XNA 框架对其进行处理,
- 将其从项目中排除并
- 不要构建文件,而只是将其作为内容复制...
似乎没有任何效果。我想知道该示例是否适用于 XNA4,或者是否适用于 XNA3,并且他们改变了它在 XNA4 上的工作方式......
任何想法?