Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何仅使用部件的一部分?_C#_.net_Visual Studio - Fatal编程技术网

C# 如何仅使用部件的一部分?

C# 如何仅使用部件的一部分?,c#,.net,visual-studio,C#,.net,Visual Studio,我希望拆分应用程序的组件,如: Application A -> Component X <- Application B 无需将组件X编译为dll。 当我包含.cs时,VisualStudio会将其复制到应用程序目录。我不想那样。我想包括这个文件,然后使用它的一部分,比如C的define。例如,如果我有一个ZIP库,如果需要解压缩,我不想包含整个程序集。用什么方法做这个?我是否可以告诉VS不要复制文件并使用定义或某些方法属性?程序集是一个完整的文件。如果需要仅根据需要包含的多个程

我希望拆分应用程序的组件,如:

Application A -> Component X <- Application B
无需将组件X编译为dll。
当我包含.cs时,VisualStudio会将其复制到应用程序目录。我不想那样。我想包括这个文件,然后使用它的一部分,比如C的define。例如,如果我有一个ZIP库,如果需要解压缩,我不想包含整个程序集。用什么方法做这个?我是否可以告诉VS不要复制文件并使用定义或某些方法属性?

程序集是一个完整的文件。如果需要仅根据需要包含的多个程序集,则需要使用多个项目构建它们,每个程序集一个,并且只引用所需下游项目中的程序集


然而,更大的问题是。。。为什么?

您可以在Visual Studio中链接到源文件,而不是将它们复制到项目中。右键单击要放置文件的文件夹,单击“添加现有项”,在对话框中找到要添加的文件,在单击“打开”之前,请注意“打开”按钮旁边的小向下箭头。单击该链接,然后单击“添加为链接”

此处的文档:

添加现有项目

浏览到要包含的文件

按“添加”按钮右侧的箭头并在下拉列表中选择“链接”,而不是选择“添加”


/不要在没有问题的地方制造问题

创建一个新的dll,并移动应在其中共享的.cs文件。构建它,让AppA和AppB引用并使用该dll

顺便说一句,您可以将引用从AppA添加到AppB,或从AppB添加到AppA,但不能同时添加,因为它将创建循环引用

如果您想坚持您的想法,请按照Chris的建议链接您的代码文件,并使用:

#if APPA
// code for AppA
#endif
只在一个应用程序中编译代码片段。使用“项目级别定义项目属性”在各自的项目中定义APPA和APPB


您需要什么?

非常不清楚。Visual Studio不会复制.cs文件,并且在C中定义不会执行您想要的操作。你是说包括吗?这与将同一个.cs文件添加到多个项目没有什么不同。在许多情况下,这会导致问题,例如序列化。只是说,@blez用它做什么是他的事:-一句话:程序集是一个完整的文件-这不是真的,你可以构建多文件程序集严格来说,程序集是一个完整的文件。但是,我同意,我说的每个大会一次是不正确的。谢谢,我其实不知道。但是-也就是说-我不知道,如果你的项目足够复杂,你需要把它分解成多个程序集,那么这就清楚地表明项目本身需要一些重组。