如何将一个项目的源文件包含在另一个项目中?

Kir*_*kov 7 c# project visual-studio-2010 visual-studio

我正在用C#/ .NET编写一个类库.

我需要为两个不同的框架编译它:

  • 4.0(用于自己调试)
  • 3.5(在客户端使用).

我想为这两个项目设置一个源文件,因此我可以在一个文件副本中进行更正,它们会自动包含在另一个项目中.

现在,如果我甚至使用"添加现有项目",VS 2010会创建副本; 我需要每次都复制最新版本.

我不能只改变项目中的目标,因为我使用不同版本的.dll引用,因为ms vs有一些怪癖.

Ale*_*lex 7

您可以使用该Add as Link功能.

它是这样的:

  • 右键单击您需要(现有)文件的位置
  • "添加" - >"现有项目"
  • 选择您的文件,然后单击"添加"按钮上的箭头,选择"添加为链接"(请参见下面的屏幕截图)
  • 该文件的链接将添加到项目而不是副本

截图


jes*_*ing 7

一种选择是使用Add As Link其他人提到的选项,但你有更多的选择:

  1. 可移植类库是一种特殊的项目,允许您指定要定位的.NET版本.然后编译器为您输出相应的程序集.这种技术的优点是你有一个版本的源代码可以编译到两个框架.缺点是您不能使用最低标准.NET框架不支持的功能.
  2. 源代码控制分支和合并允许您实际维护2个相似但不同的源文件.您有一个版本是主版本,然后在对其进行更改后,将其合并到生成实际输出的项目中.这种技术的优点是你可以拥有两个完全独立的文件,因此你有很多自由.缺点是您有两个完全独立的文件,这些文件很难管理.
  3. 做得更好的MsBuild技巧.使用该<choose>/<when>构造,您可以根据条件有条件地包含对特定程序集版本的引用.目标框架版本和其他花哨的设置也可以通过MsBuild进行管理,但您不能总是通过UI编辑这些设置.您可以结合使用它#if MY_CONSTANT来创建应用程序的有条件编译部分
  4. 您可以创建从两个项目引用的.NET程序集.您将.NET版本设置为最低版本,在您的情况下为3.5.Visual Studio 2010及更高版本具有多目标支持,您可以在一个解决方案中混合和匹配.NET框架版本.

您遇到了什么样的问题,如果您共享(部分)项目文件,我们可能会为您解决这些问题.