如何管理SVN / Visual Studio中的引用?

时间:2010-09-28 17:40:20

标签: visual-studio svn version-control

很长一段时间寻找管理参考文献的方法,我找不到任何理想的方法。

主要问题是:

1-)我是否应该包括我在同一个解决方案中使用的所有项目并参考项目?或者仅引用dll文件?

2-)如果我应该引用dll文件,最好的方法是在每个项目中创建一个ReferencedAssemblies,或者在svn root中创建一个主文件夹?

3-)它的ok粘贴和引用dll在我项目的bin文件夹中?

4-)它可以在我的项目的bin文件夹中添加并提交dll吗?这种方式当一个新的devoloper签出项目时,它将编译完美,但不是visual studio的默认行为,所有源代码控件默认忽略bin和obj,只添加.refresh文件(用于网站项目)

有人可以帮助我吗?

3 个答案:

答案 0 :(得分:3)

1)如果在解决方案中包含已在其他位置检查过的项目,则可以在Visual Studio中的解决方案级别更改该项目的SVN绑定。 (文件>源代码管理>更改源代码管理)。您可以将其更改为指向SVN仓库中的任何位置。

2)如果你在不同机器上有很多开发人员想要使用相同的库,那么为所有第三方库/程序集创建一个共同的位置可能更容易。将它们复制到SVN存储库中的所有位置是没有意义的。

3)不,通常不会这样做。我会避免它(除非有人有正当理由)。

4)永远不要提交bin文件夹。出于某种原因,默认行为是这样的。 .refresh文件是旧的Web Site 项目的副产品,它们很好。

答案 1 :(得分:2)

1)在典型情况下,您应该引用您拥有的所有项目。但是你应该根据参考项目的变化频率做出决定。例如,如果您有一个开源库,最好将其作为程序集包含,因为您可能不会经常更改此代码。

2)典型的方法是在SVN根目录下创建单独的单个目录,并根据程序集类型将程序集放在不同的子文件夹中。这是我当前文件夹的样子: alt text

3)不,最好从 bin 文件夹中引用其他一些程序集。在构建过程时,所有引用的程序集都将复制到 bin 。另请注意,bin文件夹中* .refresh文件的目的是为了防止您自己复制新版本。

4)不,您永远不应该提交您的bin文件夹,因为您可以依赖WebSites的* .refresh文件而只是忘记其他项目类型的这个问题。

答案 2 :(得分:0)

1)我认为这取决于您的具体情况,特别是因为Visual Studio对解决方案中包含的项目非常灵活。 (它与目录结构无关。)

我们有几个应用程序有一个解决方案,其中包含许多项目(对于每个'件')。

2,3,4)为了引用和包含项目中的文件,为什么不使用Visual Studio内置的功能?以这种方式添加引用会将项添加到csproj(vbproj)文件中。

(根据我的研究,如果你没有引用一个项目作为解决方案的一部分,请将DLL放在一个目录中,团队中的每个人都可以访问并在添加引用时使用它。在项目文件中它最终看起来像这样:

<Reference Include="Elmah">
    <HintPath>\\pathInformation\shared assemblies\ELMAH 1.1 32-bit\Elmah.dll</HintPath>
</Reference>

这也意味着您不必提交DLL;如果有任何变化,项目文件将相应更新。

(我承认,我不确定最后一点。我见过很多人检查外部库,比如ELMAH。我通常会跟那些告诉你完全忽略bin目录的人。)< / p>