在项目之间共享源文件(译文)
By S.F.
本文链接 https://www.kyfws.com/news/sharing-source-files-among-projects/
版权声明 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
- 3 分钟阅读 - 1086 个词 阅读量 0在项目之间共享源文件(译文)
原文地址:https://www.codeproject.com/Articles/61881/Sharing-Source-Files-Among-Projects
原文作者:Joel Ivory Johnson
译文由本站翻译
前言
如何在项目之间共享源文件
有时您会希望在多个项目中共享相同的源代码.常见的方法是使用共享程序集.您将通用功能放在一个项目中,然后在其他几个项目中共享输出.但是有时,此解决方案不适合使用,例如您具有计划在多个.NET运行时之间共享的功能时(例如:Desktop Framework,Compact Framework和Silverlight Runtime).对于这些情况,您可以在所有三个运行时将源代码复制到项目中.但是随后您将获得三个代码分支,并且可能需要确保它们彼此同步. 通过为另一个项目添加文件的链接,可以在不同的项目中使用相同的源文件,以便每个项目使用相同的运行时.由于它是同一物理文件,因此使用同一链接文件的所有项目都可以看到对一个项目所做的文件更改.添加链接文件很容易.要从另一个链接到一个文件的项目,请在该项目上单击鼠标右键,选择"添加"->“现有项”,然后导航到该文件.找到文件后,单击它,然后单击"添加"按钮上的向下三角形,然后选择"添加为链接".
使用此解决方案的潜在问题是,您可能希望某个类中的项目在另一个类中不可见.您可以使用一些预处理程序指令有选择地隐藏代码段.举一个简单的例子,假设我创建了一个Windows Form应用程序,并将其中的所有文件链接到第二个项目.我在设置标签上的文本的方法中有代码.但是我希望根据运行它的项目对文本进行不同的设置.我将使用的预处理程序指令是#if,#else和#endif.
#if App1
txtMyMessage.Text="Hello from App1";
#else
txtMyMessage.Text = "Hello from App2";
#endif
在上面的代码中,只会编译#else块中的C#代码. #if块中的代码将被忽略.对于我的第一个项目,我想在#if块中进行编码.为此,我需要添加一个条件编译符号.我右键单击该项目,然后选择"属性".在"构建"选项卡下,我可以添加条件编译符号.我已经完成了第一个项目,并添加了一个名为" App1"的符号.因此,现在第一个代码块将被编译,第二个代码块将被忽略.
尽管此解决方案有其优点,但它并不是跨项目共享功能的最终解决方案.如果您发现自己在代码中使用了过多的条件编译块,那么可能最好选择两个单独的源文件. CodeProject
许可
本文以及所有相关的源代码和文件均已获得The Code Project Open License (CPOL)的许可。
C# Windows 新闻 翻译