【发布时间】:2015-06-24 20:00:24
【问题描述】:
这是我到目前为止所做的:
到这里下载源代码:http://oggsharp.codeplex.com/SourceControl/latest#OggSharp/CsVorbis。它以“oggsharp-19c0361a8fa8.zip”的形式出现,其中包含我想要的所有 .cs 文件的 OggSharp\CsVorbis。
在 MS VS 2010 中启动了一个新的类库项目。添加了该文件夹 (CsVorbis) 中的所有 .cs 文件。
编译项目。这样就生成了一个 CsVorbisDll.dll 文件。
转到我的另一个项目——MonoGame DirectX 项目——并添加了对该 dll 的引用。
添加了
using CsVorbisDll;,这部分有效。所以它可以看到dll。 (编辑:之前打错了。是using CsVorbisDll;)尝试使用该 dll 中的类,例如 OggDecoder,但这不起作用!它说“找不到类型或命名空间名称 'OggDecoder'” p>
显然我的项目可以看到 dll,但看不到 dll。我不确定为什么。 OggDecoder 类是公开的。然而,我注意到 dll 的大小只有 4 KB,而源代码文件夹大约是 300 KB。编译不正确吗?
我在编译 dll 时将配置设置为“发布”,而不是“调试”。我的 MonoGame 项目也在 MS VS 2010 中,使用 DirectX,其他方面运行良好。
编辑:到目前为止我已经验证的内容:两个项目都针对“.NET Framework 4”(不是客户端配置文件)。这两个项目都有平台目标“x86”。
有人可以帮我正确设置这个 dll 吗?我真的希望它是一个dll。源代码中的 *.cs 太多,无法将它们全部添加到我的 MonoGame 项目中。
编辑:我找到了答案并将其发布。基本上,我必须使项目名称与所有 .cs 文件的命名空间相同,以便 dll 文件名也与命名空间相同。
【问题讨论】:
-
两个项目编译在同一个.NET版本下?
-
“添加了“使用CsVorbisDll.dll;”,这部分工作。”。您应该了解程序集引用和 using 指令之间的区别。
-
@Jonesy 是的,两者都在项目属性中设置了“目标框架:.NET Framework 4”。
-
@LucasTrzesniewski 抱歉,我之前打错了。它是“使用 CsVorbisDll;”最后没有.dll。我应该为 dll 文件选择一个更好的名称。
-
您检查项目是否处于不同的 32 位构建模式?
标签: c# visual-studio-2010 dll