Visual Studio for C#中的其他全局包含目录

时间:2012-07-05 03:14:25

标签: c# visual-studio-2010 visual-studio

我发现自己在这里和那里重写了很多小东西,因为它们可能太大/太复杂而无法表示为片段,但实际上,制作一个独立的DLL是没有意义的。因为我们可能只会谈几十行或几百行代码。

例如,一个小表单,其中只包含一个文本框,用户输入密码并在{Enter}上关闭。

或者一种扩展方法,可以将任何对象序列化/反序列化为GZipped文件,假设该对象标记为Serializable

列表还在继续。多年来,我积累了许多小小的碎片,并没有以任何整齐的方式组织起来。

在C ++项目中,我可以编写一个包含这些代码的lib文件,我可以将其添加到我的编译器设置中,以便我创建的任何未来的C ++项目都包含此lib。我用ATL和Boost完成了这个。

我不知道为C#项目做这件事的方法。有可能吗?

修改

如果我进行汇编,我必须将其编译为DLL并将DLL与我的主可执行文件一起分发。 DLL可能很小或者可能很大,我不知道。但我可能只需要在我的项目中使用该DLL中的一些小函数。在C ++中,当我使用库时,只有我使用的函数是静态链接的,但是如果我使用DLL分发我的软件,那么我必须分发所有内容。

我知道可以将DLL与主可执行文件合并,这样用户就不会知道有一个单独的库,但是整个DLL仍然与可执行文件一起打包。

想象一下,我编写了一个包含大量自己的数学,统计数据,文件IO,图像处理,序列化,用户IO等的DLL。没什么好看的,只是我发现自己经常做的一些常见事情。例如,DLL可能是4MB。

现在我想编写一个使用DLL的一小部分的程序,如果我只是简单地复制/粘贴必要的代码,那么我的EXE将最终成为700kB。

你是说我要么复制/粘贴我需要的代码,要么我必须分配一个4MB的DLL以及我的700kB EXE?

3 个答案:

答案 0 :(得分:3)

除了使用程序集之外,我所知道的唯一方法是在项目中创建一个指向相关源代码的链接。在visual studio中,过程是:

  

项目→添加→现有文件→添加为链接(小向下箭头:)

答案 1 :(得分:1)

虽然经常被要求,但在源代码级别是不可能的(只有Google c ##include等效)。 c#提供的唯一合理的替代方法是将您的公共代码编译为DLL并添加对它的引用。

请注意,虽然您可以从另一个项目向项目添加文件,但它将需要一份副本,因此无法维护更新。我已经使用它来“手动”实现相同的效果 - 当公共文件更新时,我将其从项目“引用”它中排除,然后重新添加以获得新的副本。

更新如下所示,您可以添加链接 - 多酷!为什么没有人告诉我。

答案 2 :(得分:-1)

我们在整个包含路径中添加一个公共目录,然后使用

#include <somefile.cpp>

直接在我们的cpp文件中。它将直接包括源。