我们已经建立了定义,它正在构建解决方案并根据需要将二进制文件复制到输出目录。但是当我向解决方案添加一个新项目时,新项目的二进制文件不会复制到构建输出文件夹中。
添加新项目时是否需要对构建定义进行任何更改,因为如果我对现有项目进行任何更改,则构建输出会根据更改正确更新。每当将新项目添加到解决方案中时,我是否需要执行任何刷新操作来构建定义?
我们已经建立了定义,它正在构建解决方案并根据需要将二进制文件复制到输出目录。但是当我向解决方案添加一个新项目时,新项目的二进制文件不会复制到构建输出文件夹中。
添加新项目时是否需要对构建定义进行任何更改,因为如果我对现有项目进行任何更改,则构建输出会根据更改正确更新。每当将新项目添加到解决方案中时,我是否需要执行任何刷新操作来构建定义?
您可以检查几件事。
源代码管理中的文件夹是否映射到构建定义的工作区?可能是源没有被带到构建服务器。如果您的解决方案中没有其他项目对丢失的项目有任何依赖关系,您将不会看到任何错误。
要检查的另一件事是您设置要构建的配置。在您的构建定义中检查构建过程中的配置(例如“Release”、“Any CPU”)。然后在 Visual Studio 中打开您的解决方案并在解决方案资源管理器中右键单击解决方案,选择“配置管理器”并确保存在相同的配置,如果它确实确保项目设置为针对该配置构建。
我认为获得效果的唯一方法是,如果您实际上是在构建定义中构建另一个 *.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 下?