项目无法在dll中查看

时间:2015-06-24 20:00:24

标签: c# visual-studio-2010 dll

这是我到目前为止所做的:

  1. 点击此处下载源代码:http://oggsharp.codeplex.com/SourceControl/latest#OggSharp/CsVorbis。它来自" oggsharp-19c0361a8fa8.zip"并且有OggSharp \ CsVorbis,它包含我想要的所有.cs文件。

  2. 在MS VS 2010中启动了一个新的类库项目。添加了该文件夹中的所有.cs文件(CsVorbis)。

  3. 编译项目。这产生了一个CsVorbisDll.dll文件。

  4. 去了我的另一个项目 - 一个MonoGame DirectX项目---并添加了对该dll的引用。

  5. 添加了using CsVorbisDll;,此部分有效。所以它可以看到dll。 (编辑:以前打字。它是using CsVorbisDll;

  6. 尝试使用该dll中的类,例如OggDecoder,,但这不起作用!它说"类型或命名空间名称' OggDecoder& #39;无法找到"

  7. 显然我的项目可以看到 dll,但无法看到 dll。我不确定为什么。 OggDecoder类是公共的。但是,我注意到dll的大小只有4 KB,而源代码文件夹的大小却是300 KB。它没有正确编译吗?

    当我编译dll时,我将配置设置为" Release"而不是" Debug"我的MonoGame项目也在MS VS 2010中,使用DirectX,否则运行正常。

    编辑:到目前为止我已经验证过:两个项目的目标都是" .NET Framework 4" (不是客户档案)。这两个项目都有平台目标" x86"。

    有人可以帮我正确设置这个dll吗?我真的希望它成为一个DLL。来自源的太多* .cs只是将它们全部添加到我的MonoGame项目中。

    编辑:我找到答案并发布了。基本上,我必须使项目名称与所有.cs文件的名称空间相同,以便dll文件名也与名称空间相同。

3 个答案:

答案 0 :(得分:0)

如果你想深入挖掘内部dll,你可以尝试.Net Reflector

您可以安装60天左右的免费试用版。它在visual studio中安装了一个新菜单。

答案 1 :(得分:0)

除非您也更改了所有命名空间,否则您使用的语句不正确。它应该是:

using OggSharp;

答案 2 :(得分:0)

我弄清楚出了什么问题,但仍然不喜欢它。

我正在编译的.cs文件都有namespace Oggsharp。所以一时兴起,我创建了一个新的类库项目并将其命名为OggSharp(而不是像以前那样将其命名为CsVorbisDll)。这次它编译成一个84 KB的dll。我引用它并且能够使用它的所有类和函数!

我最初的怀疑是正确的,因为CsVorbisDll.dll被编译为一个可怜的小4 KB dll文件。所以我猜它没有编译进去,因为命名空间与dll名称不匹配?

在调用项目OggSharp并制作OggSharp.dll时,它编译成一个84 KB的dll,其内部可用。

不确定我喜欢这个约定/规则。我可以做一些实验,例如,手动重命名dll并查看会发生什么。