我正在安装TFS 2010以及Visual Studio 2010(也安装在服务器中),我为C#项目创建了一个构建定义。 Build最终成功但我的drop文件夹中没有.exe文件,但我可以找到dll,
之前有没有人遇到过同样的问题?
答案 0 :(得分:6)
这可能是您要构建的配置的问题。
在解决方案资源管理器中,右键单击解决方案并选择“Configuration Manager”。这将显示解决方案中所有项目的列表。创建“EXE”的项目可能设置为“x86”,创建“DLL(s)”的项目可能设置为“AnyCPU”。
你应该为每一个都有一个“平台”,加上“混合平台”的“平台”,它将构建所有项目。
现在检查您的构建定义。查看进程选项卡并查看“要构建的项目”设置,确保您正在构建“发布|混合平台”。如果您只是在构建输出中获取dll,我怀疑您的构建设置为“Release | AnyCPU”
答案 1 :(得分:1)
如果您将新构建和排队队列排队,则可以观察到TFS-Build的整个流程。设置Verbosity = diagnostic
一旦构建结束,打开它并选择“查看日志”。
一个BinariesDirectory
的值在Initialize Binaries Directory
内。<另一个名为OutputDirectory
的变量的值在Initialize OutputDirectory
之内,基于BinariesDirectory
的内容。
MSBuild将结果放入此OutputDirectory
。
最后,在Copy Files to Drop Location
内,BinariesDirectory
下的所有内容都会被复制到放置位置。
执行此操作的活动是Microsoft.TeamFoundation.Build.Workflow.Activities.CopyDirectory
,它不会关注在任何扩展 - 它只是复制整个目录。
为了体验您的报告,您可能正在使用非默认的构建过程模板XAML,或者您的MSBuild参数以某种方式被更改,或者* exe-csproj具有硬编码的输出路径。
在任何例如,如果您如上所述跟踪构建日志,您应该能够找到罪魁祸首。祝你好运!
答案 2 :(得分:1)
感谢您的回复,这正是问题,3个项目中的一个设置为“x86”而不是“AnyCPU”,我注意到在组织了二进制文件夹后(默认情况下,TFS将所有内容放在同一个文件夹中可能很难看到)使用帖子:http://lajak.wordpress.com/2011/05/07/customize-binaries-folder-in-tfs-team-build/。
问题现在解决了。感谢您的帮助,祝您度过愉快的一天。