2010-09-26 123 views
3

这是一直困扰着我的问题,我只是没有找到一个好的解决方案(没有双关语意图)。将第三方库添加到Visual Studio源代码控制中

我使用Visual Studio 2010与Subversion和Ankhsvn。它工作得很好,但是,我最大的问题是它只能检索和管理“包含在项目中”的文件。这在很多情况下都很棒,但是当你想要一个包含你想要包含在解决方案中的对象的文件夹时,却不希望在项目本身(在这种情况下是一个Web项目)中存在。

在这种情况下,我想将一些第三方DLL包含到源代码控制中(这样它们可以在与版本控制同步时保持最新状态)。我不希望开发人员不得不单独安装第三方DLL。通常会发生的是,您从其他位置引用DLL,并在编译时将它们复制到bin文件夹中。

我不希望将它们包含在项目中,因为当我发布站点时(而不是通过bin目录),我不会将它们复制到Web服务器。我想为这些创建一个独立的项目,但这会创建一个无用的DLL,然后将其复制到bin文件夹中,因为它被引用。

我也试着从bin文件夹中检查它们,但是这导致了一些问题,其中文件没有同步prolerly,颠覆说有关已存在的版本文件夹等事情。这似乎是一个颠覆或ankhsvn问题,而不是一个视觉工作室的问题。因此,我尝试通过版本控制保持bin文件夹不变。

你是如何在你的项目中解决这个问题的?

回答

5

这就是我们在项目中的做法。

Folder Structure

我们有这对于其中包含的代码项目的子文件夹的文件夹源码。

此外,这有一个名为库的文件夹,它具有我们使用的任何第三方DLL的正确版本。这个文件夹在版本控制,因此大家总是有第三方DLL的正确版本

项目中的所有引用到第三方DLL是相对于此文件夹。

由于每个人在他们的机器上都有SourceCode文件夹,所以它工作正常,没有问题。

编辑:解决方案文件夹与库内容将其 VS Solution Folder

+0

那不解决我的问题 添加的图像。我特意说我不想这样做,因为我不想在发布时将dll推送到该文件夹​​中的服务器。另一种方式是指定它们不包含在项目中,这意味着它们不会通过ankhsvn同步,并且需要与Tortiose类似的东西进行同步,这是一种痛苦,必须在两个地方同步。 – 2010-09-26 03:34:20

+1

您不发布文件夹。你发布一个项目。因此,我不确定你在说什么。我没有使用TortioseSVN,只有ankhsvn。我不想同时使用两者。因此,所有版本控制必须与Visual Studio – 2010-09-26 04:29:19

+0

一起发生好,所以如果您的Web应用程序项目位于网站文件夹中,您如何同步源代码树?我通过像TortioseSVN这样的东西来设想。在我的情况下,我不想使用TortioseSVN同步,我只想使用Ankhsvn。而且,由于AnkhSVN只会对Visual Studio解决方案中包含的文件进行sycron ...您是否明白了我的观点? – 2010-09-26 04:48:19

相关问题