Я пытался реализовать что-то похожее на образец внешних ссылок в блоге Шона Харгривза
http://blogs.msdn.com/b/shawnhar/archive/2008/08/12/everything-you-ever-wanted-to-know-about-intermediateserializer.aspx
У меня проблема в том, что когда 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, ExternalReference 1 value)
at 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, логический compressContent, строковый rootDirectory, String referenceRelocationPath)
в Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.SerializeOutputAsset (элемент BuildItem, Object assetData, String outputFilename)
в Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.SerializeAsset (элемент BuildItem, Object 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 [] & rebuiltContent, String, промежуточный словарь, строка 1011 * 2 [] & предупреждения) C: \ Work \ Company \ Project \ trunk \ Project.Content \ Sprites \ Effects \ AtlasAuto.xml Project
Что я должен делать с файлом, на который ссылается файл Xml? Учитывая, что он находится в той же папке, что и XML-файл,
Я пытался:
- включить в проект контента и обработать его с помощью Texture - XNA Framework,
- исключить его из проекта и
- не создавать файл, а просто копировать его как содержимое ...
Кажется, ничего не работает. Интересно, работает ли этот пример в XNA4 или для XNA3, и они изменили способ работы в XNA4 ...
есть идеи?