在其他项目中使用命名空间

4
如下图中所示,我有一个名为SampleApp的项目,使用了EDAMThrift命名空间。我希望将SampleApp的功能复制到另一个项目中。
我是否需要在其他项目中包含这两个项目 (EDAMThrift)?我是否可以只复制文件夹而不是包含实际项目文件?或者我可以将它们转换为某种DLL或其他东西吗?

1
假设其他项目正在构建程序集(dlls),那么您可以从其他项目中引用DLL,而不是在您的项目中包含源代码。如果您已将它们安装在全局程序集缓存中,则更容易,然后您只需从程序集列表中选择它们即可。 - David Hope
4个回答

3

你一定要在SampleApp项目中添加对EDAM和Thrift项目的引用。

具体操作步骤如下:

  1. 右键单击SampleApp项目中的“引用”文件夹。

  2. 选择“添加引用...”

  3. 在弹出窗口中,转到“解决方案”选项卡。

  4. 选择EDAM和Thrift项目。

切勿只复制文件。


如何添加引用?你是指我需要将整个项目(EDAM和Thrift)复制粘贴到我的新项目中吗? - user1477388
@user1477388 - 不是的。在SampleApp下面有一个名为'References'的文件夹。右键单击并选择“添加引用...” - Justin Niessner

2

我不知道我可以引用整个项目。我以为我只能引用DLL文件。我该怎么做?谢谢。 - user1477388
因此,文档中说:“Projects列出了从本地项目创建的所有可重用组件。”这是否意味着我必须将EDAM和Thrift项目都复制并粘贴到我的新项目中? - user1477388
你引用整个项目,但最终只引用编译输出的DLL文件。 - Ulises
不要复制粘贴。只需在您的项目上右键单击“引用”并添加对这些项目的引用。 - Ulises
我的另一个项目在一个单独的解决方案中。那对您的解决方案有影响吗? - user1477388
1
不,它并不是这样的。该解决方案只是将项目分组。一个项目可能属于多个解决方案。 - Ulises

1
如果“其他”项目在同一解决方案中,您应该能够像为SampleApp设置引用一样从该项目中引用EDAM、Thrift甚至SampleApp。
如果这个“其他”项目将在一个新的解决方案中...我需要进行一些研究和测试。

是的,“其他”项目在另一个解决方案中。 - user1477388
2
我已经检查过了。为了从另一个解决方案中引用命名空间,该命名空间必须在类库(也称为DLL)中。然后,您可以在新项目/解决方案中添加对DLL的引用,这将允许您添加一个using行来使用该命名空间。 - Christopher J Smith
谢谢,Christopher。我会尝试一下。 - user1477388
克里斯,一个问题:当我打开我的新解决方案并点击“添加引用”,浏览到我看到解决方案的文件夹时,我无法找到任何EDAM或Thrift的DLL文件。我做错了吗? - user1477388
1
请确保以 Release 模式编译 DLL,并在 bin/Release 文件夹中查找它。您还应该能够在“添加引用”对话框的“项目”选项卡下找到该引用。 - Christopher J Smith

1
Visual Studio 项目引用相当于直接引用程序集,但有一个很大的优势:在构建项目时,Visual Studio 会负责构建其依赖项目。
此外,Visual Studio 还可以防止循环引用。
还有许多其他优点,这是一个很好的总结。
复制粘贴代码文件并不是导入命名空间:这是重复代码!直接引用程序集是浪费时间和功能!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接