我想分割我的应用程序的组件,如:
Application A -> Component X <- Application B
没有将组件X编译为dll。 当我包含.cs时,Visual Studio将其复制到应用程序目录。我不希望这样。我想要包含该文件,然后使用它的一部分,如C的#define。例如,如果我有一个ZIP库,如果我需要解压缩,我不想包括整个程序集。什么是C#方式来做到这一点?我可以告诉VS不要复制文件并使用#defines或者某些方法属性吗?
答案 0 :(得分:3)
程序集是一个完整的文件。如果您需要仅根据需要包含的多个程序集,则需要使用多个项目(每个程序集一个)构建它们,并仅引用所需的下游项目中的项目。
然而,更大的问题是......为什么?
答案 1 :(得分:2)
如果没有问题,请不要创建问题。
创建一个新的dll,以及应该在那里共享的MOVE .cs文件。构建它,并拥有AppA和AppB参考并使用该DLL。
顺便说一下,您可以将AppA的引用添加到AppB,或者从AppB添加到AppA,但不能同时添加,因为它会创建循环引用。如果您想坚持自己的想法,请按照Chris的建议链接您的代码文件,并使用:
#if APPA
// code for AppA
#endif
让代码片段只在一个应用程序中编译。使用项目级别#defines(项目属性)在各自的项目中定义APPA和APPB。
答案 2 :(得分:1)
您可以链接到Visual Studio中的源文件,而不是将它们复制到项目中。右键单击要放置文件的文件夹,单击“添加现有项”,在对话框中找到要添加的文件,然后在单击“打开”之前,请注意“打开”按钮旁边的小向下箭头。单击该按钮,然后单击“添加为链接”。
此处的文档:http://msdn.microsoft.com/en-us/library/9f4t9t92(v=VS.100).aspx
答案 3 :(得分:1)
添加现有项目......
浏览到要包含的文件。
不要选择“添加”,而是按“添加”按钮右侧的箭头,然后在下拉列表中选择“链接”。
/ B
答案 4 :(得分:0)
您可能需要Multifile Assembly吗?