我创建了一个新的VS“空”项目,并在其中创建了一个类。我决定尝试将其作为库,进入属性并将输出类型设置为类库。它编译成一个DLL,但是当我将它添加为另一个项目的引用时,输入“using ...”并没有我的新库。如果我创建一个新的库项目,在那里通过我的类,将其编译成一个DLL,然后它工作正常。所以我想知道的是,我需要在一个空白项目中更改哪些设置才能使其充当dll?
答案 0 :(得分:5)
using
指令是关于命名空间,而不是程序集。
如果你的库是空的,它没有对命名空间做任何贡献,所以using指令找不到任何东西。
了解命名空间和程序集之间的区别非常重要 - 您可以拥有仅包含Foo.dll
的库Bar.Xyz
。您可以在项目中将引用添加到Foo.dll
,但是Bar
的使用指令。
作为一个更具体的示例,Enumerable
命名空间中的System.Linq
类来自System.Core.dll
- 但您仍然为using
添加System.Linq
指令,不是System.Core
。实际上,如果您尝试为using
添加System.Core
指令,则会收到错误 - 因为该命名空间不存在。 (如果没有成员,则名称空间实际上不存在。)