我希望在我自己的项目中包含从外部SVN存储库构建的项目的dll输出。实现这一目标的最佳方法是什么。
由于外部项目svn:忽略bin \ release文件夹,我认为我不能使用svn:external。
构建最新版本并在dll中复制似乎容易出错。
在这个例子中,我希望包含来自codeplex的HtmlAgilityPack,因此任何引用此项目的示例都会很好(https://htmlagilitypack.svn.codeplex.com/svn)。
答案 0 :(得分:1)
这正是svn:externals
的用途。由于源代码是在另一个存储库中提供的,因此您必须在构建该源的解决方案中添加一个新项目,而不是包含DLL。
此外,不要忘记链接到外部仓库的特定修订版(而不是HEAD)的最佳做法,以便您可以控制是否以及何时更新其代码副本。
给出目标存储库的
结构/Branches 1.3.0 1.4.0 /Release 1_4_0_beta1 1_4_0_beta2 /Trunk
我会链接到Release文件夹中的某些内容,例如
/Release/1_4_0_beta2/HtmlAgilityPack
您还可以指定修订号作为防止意外更改的安全措施,但这是一个标记,因此它们不太可能更新它们 - 它们只会创建一个新标记。
答案 1 :(得分:0)
看起来基本上,svn:external
正是您所需要的。当然,您链接到的存储库必须以某种方式提供文件。如果没有,我认为你不会以某种方式在脚本级别上下载和复制它们。