Visual Studio:添加项目/添加为链接,而不仅仅是添加

时间:2010-04-07 15:12:54

标签: c# visual-studio

我是视觉工作室的新手,来自德尔福。

我有一个目录树,里面装满了.cs文件(root是\ Common) 我还有一个完整的应用程序目录树(root是\ Applications)
最后,我有一个装满了Assemblies的树(root是\ Assemblies)

我想将.cs文件保存在Common树和所有环境voodoo(解决方案,项目,设置,元数据,调试数据,bin等)中。所以,举一个简单的例子,我有一个名为PdMagic.Common.Math.dll的程序集。解决方案和项目位于\ Assemblies \ Common \ Math中。它的所有源(.cs)文件都在\ Common \ Math中。 (matrix.cs,trig.cs,mathtypes.cs,mathfuncs.cs,stats.cs等)

当我使用Add Existing Item将matrix.cs添加到我的项目时,它的副本被添加到\ Assemblies \ Common \ Math文件夹中。我只是想参考一下。我不希望有多个副本。我尝试过添加现有项目,并使用下拉菜单“添加链接”而不仅仅是“添加”,这似乎就是我想要的。

问题:这类事情的“最佳实践”是什么?大多数人只是将这些.cs文件放在与项目相同的文件夹中吗?为什么“添加链接”不是默认值?

谢谢!

8 个答案:

答案 0 :(得分:81)

您可以通过点击添加 - >现有项目命令中添加按钮右侧的小向下箭头,使用添加为链接 ...

(Thanks Peter)

虽然我意识到这不是对原始问题(关于最佳实践)的回答,但我提出这个答案是为了节省被这个问题的误导性标题引导到这里的其他人的时间。

答案 1 :(得分:12)

在这种情况下,“最佳做法”是不打击工具。它允许你做你想做的事情,但如果你让IDE为你整理你的项目,你将完成更多工作并能够专注于代码。

我会创建一个名为PdMagic.Common的空解决方案项目

这将为您提供类似

的文件结构
PdMagic.Common\
PdMagic.Common\PdMagic.Common.sln

然后我通常会添加一个src和libs文件夹(通过文件系统,而不是VS)

在libs文件夹中,我会放置所有第三方依赖项,而src文件夹将保存我的所有项目

PdMagic.Common\
PdMagic.Common\PdMagic.Common.sln
PdMagic.Common\libs
PdMagic.Common\libs\nunit
PdMagic.Common\src

接下来,在Visual Studio中,我会右键单击刚刚创建的解决方案,然后单击“添加 - >新建项目”,我会指定我希望它在\ src文件夹中创建并将其命名为PdMagic.Common .Math

现在我的文件夹结构看起来像这样

PdMagic.Common\
PdMagic.Common\PdMagic.Common.sln
PdMagic.Common\libs
PdMagic.Common\libs\nunit
PdMagic.Common\src
PdMagic.Common\src\PdMagic.Common.Math
PdMagic.Common\src\PdMagic.Common.Math\PdMagic.Common.Math.csproj
PdMagic.Common\src\PdMagic.Common.Math\Class1.cs

然后,当您向PdMagic.Common.Math项目添加类时,它们将进入包含项目文件的文件夹。这就是IDE我们应该如何工作的意见,我认为大多数开发人员都会使用它,因为尝试在文件系统上获得任何其他布局需要与IDE进行过多的斗争。我知道很难从一个不同的约定来看,你本能地希望在新环境中使用相同的约定。但是,如果您坚持使用约定(在您看来是对或错),您将完成更多工作,因为您不会试图以您认为应该完成的方式强制执行IDE。

答案 2 :(得分:1)

我认为“最佳实践”是将这些“常见”例程放入可以引用的程序集中,而不是将源文件拉入一堆不同的项目中。您可以将其添加为带有“添加引用...”的预构建程序集,或者通过包含该程序集的项目并添加对项目的引用(也在“添加引用...”对话框中完成)。

这是最初设置的一些工作(可能是这样),但从长远来看通常会有所回报。

答案 3 :(得分:1)

如果要在项目中“引用”matrix.cs,请不要使用Add Existing Item,为matrix.cs所属的类库或对象创建引用(“Add Reference”)。如果你不想(或不能使用)matrix.cs所属的库或对象,那么添加链接就是你得到它的方式,但严重的是我从未使用过那个特定的功能。

我曾在.NET中使用过的开发人员都没有将他们的.cs文件隔离在不同的文件夹中。像我所看到的唯一一种隔离是在MVC中,模型,视图和控制器都在它们自己的文件夹中。

答案 4 :(得分:1)

因为你想在项目中引用matrix.cs,所以不要只使用AddExistigItem,为类创建一个新的引用。

答案 5 :(得分:0)

答案 6 :(得分:0)

答案 7 :(得分:0)

在Visual Studio 2019中是:

  1. 右键单击一个项目
  2. 添加
  3. 现有项目
  4. 选择文件
  5. 添加旁边的展开菜单
  6. 添加为链接

First Second