在visual studio解决方案文件夹中存储引用的Dll

Sha*_*ean 39 visual-studio-2010

我想要一个存储我所有dll的库文件夹.我目前正在做的是这里建议的.有物理文件夹,创建解决方案文件夹,复制文件.

如果我正在使用SVN,我将不得不在文件资源管理器上使用tortoise来添加库.不确定我是否必须在TFS中做同样的事情.

在vs 2010中,有没有更简单的方法来做到这一点?我希望能够将一个dll拖到visual studio中的库文件夹中,并将它物理地放在文件夹中.

Mik*_*Vee 74

我就是这样做的.不确定是否还有其他更好的方法:

  1. 右键单击解决方案资源管理器中的解决方案.将鼠标悬停在"添加"上,然后选择"新建解决方案文件夹".它不是一个真正的文件夹,也没有指向任何物理文件夹.它是一个抽象的构造,用于在解决方案中对项目进行分组,但我们会将其用于其他方面.
  2. 称之为"参考装配".
  3. 接下来,再次右键单击您的解决方案,然后单击"在Windows资源管理器中打开文件夹".在弹出的Windows资源管理器窗口中添加一个新的"物理文件夹"(它将位于解决方案的根文件夹下面).
  4. 您可以将其命名为"Referenced Assemblies",以便解决方案文件夹和物理文件夹共享相同的名称,以避免混淆.
  5. 抓住所有那些潜伏在各处的DLL(即 AjaxControlToolkit.dll或埋在程序文件中的DocumentFormat.OpenXml.dll)并将它们复制(不要拖拽 - 将原件放在原处)将它们放入Windows资源管理器中的"Referenced Assemblies"文件夹中(不在解决方案中).
  6. 现在,您可以将这些复制的dll从Windows资源管理器中的"Referenced Assemblies"物理文件夹拖到Visual Studio的Solution Explorer中的"Referenced Assemblies"解决方案文件夹中.
  7. 浏览解决方案中的每个项目,并从"Referenced Assemblies"文件夹中删除对您将引用的程序集的所有引用.
  8. 重新添加引用,但这次(在项目下)右键单击"引用",单击"添加引用...",选择"浏览"选项卡,单击带有绿色箭头的文件夹图标(说"Up"单层"当悬停在它上面"时,双击"参考组件"文件夹,选择您想要引用的所有dll,然后单击"确定".

你完成了.既然你的解决方案知道了这些dll以及在哪里找到它们,当你检查代码时(通过SVN,TFS或其他),它会将它们推送起来并复制下来供其他人使用.

如果您使用TortiseSVN,如果您还使用Visual StudioAnkhSVN插件,则无需执行任何操作.它研究您的解决方案文件(就像TFS一样)来查找解决方案引用的文件.在这种情况下,它将获取"Referenced Assemblies"解决方案文件夹引用的新dll,并在提交之前自动添加源代码控制跟踪(即,如果您在Visual Studio中从解决方案资源管理器提交解决方案更改,就像我一样).

希望这可以帮助.

  • 这就是我目前的做法.50美元他们在vs2020中添加了更好的方法来实现这个功能......(x_x) (3认同)
  • 请注意,您不能简单地将文件夹拖到解决方案文件夹中。因此,您应该创建一个反映文件系统文件夹的树结构(带有子解决方案文件夹)。这有点不舒服,但这是VS的内置限制。 (2认同)
  • 另一个解决方案是设置内部NuGet服务器,并允许NuGet管理解决方案的依赖性,但这需要更多的工作,并且不那么可移植.但是,如果你知道你只会在内部工作,这是一个好主意. (2认同)