我们正在从VSS转换到Subversion,我们在Subversion Repo上有一个网站项目。我们删除了Bin文件夹,因为它导致各种混乱的树冲突,因为我们的开发解决方案包含一些网站项目所依赖的类库项目(在我们的解决方案中设置为项目引用)。我们在网站的Bin文件夹中也有几个第三方库DLL。
我们项目的下一阶段涉及设计师修改我们网站的主题。我希望他能够在VS 2005中打开网站项目,在他的工作副本上修改他需要的CSS文件,并在他的localhost上测试他的文件。他需要最新的DLL文件才能实现这一目标。
有没有将Bin文件夹DLL添加到subversion,并配置TortoiseSVN或subversion,以便我们可以提交我们最新的DLL(开发人员的解决方案文件中的项目依赖项),但在更新时忽略它们(我估计每个客户端)?将第三方网站依赖于Subversion也很方便。
答案 0 :(得分:5)
您不应将第三方程序集放入bin文件夹中。实际上,您应该假设在每次构建之前都会清空bin文件夹。这是一个从构建中放置输出的地方,而不是放置输入的地方。
将这些二进制文件放入其他文件夹,可能是“3rdPartyAssemblies”。使用对这些文件的文件引用,它们将被复制到 bin文件夹中作为输出。
答案 1 :(得分:3)
不可能像这样构建它:
Trunk/
WebApp/
ClassLibrary1/
ClassLibrary2/
ClassLibrary3/
3rdPartyDlls/
build.bat
Web应用程序将所有类库和第三方dll拉入WebApp的Bin文件夹(所有这些都将通过相关链接引用)。然后,您可以设置TortoiseSvn以通过client side hooks更新时调用build.bat文件。您还可以在设计器的计算机上设置IIS以指向WebApp目录。
正如其他用户指出的那样,您可以使用svn externals来引入这些企业级类库。
答案 2 :(得分:1)
大多数人都对'3rdParty'所说的是正确的。
您也可以考虑使用svn:externals来引入相关目录,包括'3rdParty'程序集目录,甚至可以通过签入来触发以确保货币的构建输出目录。
答案 3 :(得分:0)
我们采用的方法是,不是让Libraries在同一个解决方案中,而是使用单独的解决方案,我们(我们的Build服务器)编译它们并将编译后的DLL检查到“Dependencies”下的sourcecontrol,这是< em>始终映射到所有开发人员计算机上的C:\ Dependencies。然后,我们使用网站项目中对该文件夹的文件引用。
这样你可以给你的设计师一个网站项目以及一个C:\ Dependencies副本,他们将是非智慧的=)
答案 4 :(得分:0)
我们不会对bin文件夹进行源控制,因为每次运行编译时它都会更新。相反,我们将第三部分库的引用保存在受版本控制的separete文件夹中,我们在项目中引用了它们。
使用此设置并使用“copy local = true”,它们会在编译时自动添加到bin中。
其次,我们只会在更新第三部分二进制文件时提交新的二进制文件。
这种方法也可以用于你的内部dll,这样你的设计师就可以编译他的visual-studio-solution,这样就可以将任何相关的dll放入他的bin-folder中,从而在本地创建一个功能性的站点。他的机器。