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

Pet*_*zio 18 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文件放在与项目相同的文件夹中吗?为什么"添加链接"不是默认值?

谢谢!

Bar*_*ieK 81

您可以通过单击Add - > Existing Item命令中添加按钮右侧的小向下箭头来使用Add As Link ...

(谢谢彼得)

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

  • 不是上述问题的最佳答案,而是我所寻找的答案! (5认同)
  • 到目前为止最好的答案,所以这是你的+10代表! (2认同)

Ner*_*ury 12

在这种情况下,"最佳实践"是不打击工具.它允许您执行您想要的操作,但如果您让IDE为您组织项目,您将完成更多工作并能够专注于代码.

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

这将为您提供类似的文件结构

PdMagic.Common\
PdMagic.Common\PdMagic.Common.sln
Run Code Online (Sandbox Code Playgroud)

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

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

PdMagic.Common\
PdMagic.Common\PdMagic.Common.sln
PdMagic.Common\libs
PdMagic.Common\libs\nunit
PdMagic.Common\src
Run Code Online (Sandbox Code Playgroud)

接下来,在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
Run Code Online (Sandbox Code Playgroud)

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