是否可以将项目构建到公共目录,而不是每个项目bin
文件夹?
目的是让我更容易控制所有二进制文件。我怎么能这样做,这种方法的缺陷是什么?
您可以选择将项目构建到另一个目录(公共目录?)而不是bin/debug
和bin/release
。
答案 0 :(得分:2)
如果您的意思是构建项目并将DLL文件放在共享文件夹中,是的,我们目前正在执行此操作,但我们使用continuous integration(CI)来使用它,因此我们可以知道项目中的更改时间导致另一个项目破裂。
当您使用其他项目中引用的特定于版本的DLL文件时,您可能会遇到问题。
您也可以使用Visual-Studio内置的post-build命令,而不是将文件复制到DLL文件上。它与批处理文件相同,但CruiseControl中不需要特殊设置来复制文件。如果开发人员对post build命令进行了更改并将其检入,则会自动由CruiseControl执行。
另外,如果您希望开发人员共享二进制文件,我会将它们放在source control中,以确保每个人共享相同的DLL文件,而不是他们自己的本地构建的DLL文件副本(可能与实际的构建服务器不同,因为某些编译指令可能/可能没有定义。)
答案 1 :(得分:2)
对于C ++项目:
右键单击项目 - >属性 - >链接器 - >输出文件
在那里设置你的目录。
对于C#项目:
右键单击项目 - >属性 - > Builld - >输出路径
答案 2 :(得分:1)
碰巧人们构建到bin之外的另一个文件夹(例如解决方案目录中的bin文件夹而不是项目目录)。我怀疑你这样做会有什么问题。但是既然你要检查它,你必须记住不要只读它(所以你可以构建它们)。源代码控制程序通常会锁定文件。
您还可以考虑使用bat脚本在成功构建后将文件复制到另一个位置。
答案 3 :(得分:1)
如果你的意思是DLL文件/程序集,那么你像往常一样构建到bin/release
,然后将你需要的DLL文件复制到一个公共目录,然后引用它们,所以当你重建原始解决方案时,你不要我不得不担心您正在使用哪个版本或重新编译其他相关项目,因为版本在公共目录中没有更改。
答案 4 :(得分:0)
我不会将您的二进制输出放入源代码控制中。只放置源文件,项目文件和解决方案文件。
答案 5 :(得分:0)
我们使用post-build脚本复制到目标位置。这很有效,但非常繁琐(因为脚本编写起来很笨拙而且调试起来很笨拙)。