Mos*_*she 3 xna dependencies visual-studio-2010 xna-4.0
我正在尝试用Nick Gravelyn构建TiledLib的演示.我从BitBucket下载了ZIP并在Visual Studio 2010中打开它.当我尝试构建时,我收到以下错误:

基本上,这三个项目中的每一个都有这个错误:
错误1加载管道程序集"C:\ Users\Moshe\Downloads\TiledLib_GS4\TiledLib GS4\References\ContentPipeline\TiledPipelineExtensions.dll"时出错.演示[Windows]
我是.NET的新手,所以我确信我缺少一些基本概念.可能会在哪里引用此依赖项,为什么程序集不会加载?该文件存在于指定的路径中.
什么是XNA 4中的管道程序集,为什么Visual Studio不能加载它?
更新:到您的内容项目,添加一个引用:TiledLib_GS4\TiledLib GS4\References\ContentPipeline\TiledPipelineExtensions.dll
自定义内容管道是一个高级游戏开发主题,但它并不难(当然取决于您处理内容的内容和方式).
内容管道是为了将内容包含在游戏中而执行的一系列步骤.例如,通过内容管道处理波形声音文件,以便您可以在游戏中将其用作SoundEffect对象.这同样适用于游戏中包含的纹理图像(Texture2D或Texture3D).
当您加载内容时,假设使用Content.Load在您的XNA游戏中进行2D纹理,您正在调用已在XNA框架中定义的内容导入器和处理器,即Microsoft.Xna.Framework.Content.Pipeline.Processors.TextureProcessor和Microsoft.Xna.Framework.Content.Pipeline.TextureImporter.FBX,视频,音频内容类型也有类似的类.
Pipeline程序集就是:作为允许您导入某种类型内容的程序集.在我们进一步详细说明之前,请注意您的所有内容都在一个特殊的内容项目中,并且此项目引用的程序集包含从基本内容处理器和导入程序类派生的一堆现成导入程序.这些类允许Content项目类型填充可用于特定类型的导入器列表,并且可以使用属性窗口更改这些导入器列表.检查下面的屏幕截图.


正如我上面给出的例子,有预定义的XNA内容导入器.XNA还允许您使用自己的导入实现扩展内容管道.为此,XNA为您提供了两个类,以在Content Pipeline Extension项目中进行扩展.第一个是内容导入器,另一个是内容处理器.
内容导入器是一个派生自Microsoft.Xna.Framework.Content.Pipeline.ContentImporter的类,并重写一个名为Import的方法,该方法传递一个字符串文件名和一个导入上下文对象,并返回一些类型的对象(泛型类型T)以供使用在你的游戏中:Texture2D,字符串或你自己的复杂类型.加载内容时首先调用此方法.
内容处理器是一种类,它提供转换内容或将一种类型的内容转换为另一种内容的方法.在XNA中,它是Microsoft.Xna.Framework.Content.Pipeline.ContentProcessor的子类,它覆盖名为Process的方法,该方法接受TInput对象和导入上下文对象并返回TOutput.在导入内容后,它被称为第二个.如果您以某种方式导入单一类型的内容,这很有用,但您有很多选项可以进一步处理它.
要查看此操作,只需添加内容管道扩展项目,并向其添加内容处理器和内容导入器类.通过添加新项目来实现这一点,这两类类型都有项目模板,因此您可以轻松地实现基本的无实现管道.但是,您仍然需要使用内容项目来引用此内容管道扩展项目,然后才能使用它.添加此引用后,您的自定义内容管道将显示为资产属性窗口中显示的内容处理器/导入器列表中的选项.您的导入器/处理器会自动选择其扩展名与ContentImporterAttribute中定义的扩展名相同的资产,以装饰您的内容导入器类.
//[using statements omitted for brevity]
// TODO: replace this with the type you want to import.
using TImport = System.String;
namespace ContentPipelineExtension1
{
/// <summary>
/// This class will be instantiated by the XNA Framework Content Pipeline
/// to import a file from disk into the specified type, TImport.
///
/// This should be part of a Content Pipeline Extension Library project.
///
/// TODO: change the ContentImporter attribute to specify the correct file
/// extension, display name, and default processor for this importer.
/// </summary>
[ContentImporter(".abc", DisplayName = "ABC Importer", DefaultProcessor = "AbcProcessor")]
public class ContentImporter1 : ContentImporter<TImport>
{
//Microsoft.Xna.Framework.Content.Pipeline.ContentImporter<T>
public override TImport Import(string filename, ContentImporterContext context)
{
return "This the simplest importer ever that doesn't even take into account the file being imported.";
}
}
}
// TODO: replace these with the processor input and output types.
using TInput = System.String;
using TOutput = System.String;
namespace ContentPipelineExtension1
{
/// <summary>
/// This class will be instantiated by the XNA Framework Content Pipeline
/// to apply custom processing to content data, converting an object of
/// type TInput to TOutput. The input and output types may be the same if
/// the processor wishes to alter data without changing its type.
///
/// This should be part of a Content Pipeline Extension Library project.
///
/// TODO: change the ContentProcessor attribute to specify the correct
/// display name for this processor.
/// </summary>
[ContentProcessor(DisplayName = "ContentPipelineExtension1.ContentProcessor1")]
public class ContentProcessor1 : Microsoft.Xna.Framework.Content.Pipeline.ContentProcessor<TInput, TOutput>
{
public override TOutput Process(TInput input, ContentProcessorContext context)
{
return input + "processed!!!!";
}
}
}
Run Code Online (Sandbox Code Playgroud)
我再次提到您的内容导入器扩展必须由您的内容项目引用.检查下面我的解决方案资源管理器的快照.

此外,内容导入程序现在是选择处理资产的选项.资产的导入程序和处理程序根据其扩展名自动选择.

如果您希望其他人在游戏中以非编程方式与您进行协作,这是一个很好的工具.例如,您希望关卡设计人员创建描述您的关卡的XML文件或文本文件.现在,您让他们这样做,然后创建导入这些文件的内容导入器,并将它们放入您在游戏中使用的游戏对象,就像您首先以编程方式创建它们一样.
现在你看到的错误来自哪里?您的内容项目中有一些内容,其内容导入器和内容处理器属性设置为某些未引用的程序集中存在的内容,但某些资产的设置指向内容导入程序.内容管道扩展名作为您下载的ZIP中的DLL存在,请参阅该路径的帖子的第一个语句.
哇,变成了一个很棒的帖子!必须在我的博客中使用它!:d
| 归档时间: |
|
| 查看次数: |
2218 次 |
| 最近记录: |