我们已经构建了定义,它正在构建解决方案并根据需要将二进制文件复制到输出目录。但是当我向解决方案添加新项目时,新项目的二进制文件不会复制到构建输出文件夹。
我们在添加新项目时是否需要对构建定义进行任何更改,因为如果我对现有项目进行任何更改,则构建输出会根据更改正确更新。每当将新项目添加到解决方案中时,是否需要执行任何刷新类型的操作来构建定义?
答案 0 :(得分:2)
您可以查看几件事。
源代码管理中的文件夹是否映射到构建定义的工作区?可能是源没有被带到构建服务器。如果解决方案中没有其他项目对缺少的项目有任何依赖性,那么您将看不到任何错误。
要检查的另一件事是您要设置的配置。在构建定义中,检查构建过程中的配置(例如“Release”,“Any CPU”)。然后在Visual Studio中打开解决方案,右键单击解决方案资源管理器中的解决方案,选择“Configuration Manager”并确保存在相同的配置,如果确实将项目设置为针对该配置构建。
答案 1 :(得分:0)
我认为获得效果的唯一方法是在构建定义中实际构建另一个* .sln。
如果你使用相同的sln&一切都是构建的,新程序集的二进制文件没有理由不被复制。
如果由于某种原因,源代码不可用,则构建将失败。
编辑
(评论后“我们没有使用此构建定义构建任何其他解决方案。它正在成功构建解决方案”)
我想你需要分享一些额外的信息。
你是说在你的构建代理中你看到Sources
下的两个:
C:\ Builds \ 1 ... \ Sources \ SolutionName \ OldProject \ bin \“Config “\ OldProject.dll
C:\ Builds \ 1 ... \ Sources \ SolutionName \ NewProject \ bin \“Config”\ NewProject.dll
但仅在Binaries
下只有
C:\ Builds \ 1 ... \ Binaries \“Config”\ OldProject.dll?