我正在使用SVN来编写我正在处理的ASP.NET Web项目。我最近决定尝试对该网站的已发布版本进行版本控制。我将这些提交到存储库以及分支根目录中的代码的标记发行版本。这证明是有用的,因为我可以使用SVN部署到我的服务器。
我面临的问题是我必须在我的项目的/ bin文件夹(没有外部引用的DLL)中创建一些文件,这些文件创建了一个/bin/.svn文件夹。问题是VS.NET的Publish命令坚持将.svn从开发分支/ bin复制到输出文件夹的/ bin。这基本上“切换”那里的二进制文件以指向dev分支。结果是/ bin文件夹的内容实际上从未实际提交到已编译的bin文件夹,因为工作副本指向存储库的不同部分。
有没有办法强制visual studio忽略发布时的.svn文件夹?或者,是否有另一种方法来处理在项目中包含静态.dll而不将它们放在bin文件夹中,以便/ bin可以从SVN中排除(应该是)(不使用GAC)?
答案 0 :(得分:7)
当然不将bin文件夹放在存储库中。这将永远让你做噩梦。
只需将静态引用的.dll放在名为“Libraries”的文件夹中,然后将项目引用设置为它们。它们将自动复制到输出中。
答案 1 :(得分:3)
我建议您不要在.bin文件夹中对任何内容进行版本控制。而是将所有引用的程序集放在项目文件夹之外的文件夹中。然后部署它并在任何地方构建它。构建过程将根据需要拉入所有dll。这将修复bin文件夹问题中的.svn文件夹!
答案 2 :(得分:2)
嗯..将它们放入解决方案中的单独文件夹中并引用它们。现在为什么我没想到(doh!)。我想我一直盯着屏幕太久了。
谢谢大家。