TFSBuild 2010程序包仅包含源 - 而不是二进制文件

时间:2011-11-15 11:55:32

标签: tfs msbuild tfs2010 tfsbuild

TFS 2010 Build创建的包只包含我们的Sources,而不包含二进制文件。当(自动)部署到IIS时,该站点不会运行,因为它缺少在构建过程中创建的DLL。

我们在VS2010中创建了一个Web项目。如果我在VS中右键单击选择“Build Deployment Package”,我们会在包含完全构建站点的obj \ Release \ Package文件夹中获得一个zip文件。

但是,如果要求我们的TFS构建过程通过将“/ p:CreatePackageOnPublish = true / p:DeployOnBuild = true”添加到MSBuild参数(在其他地方here中建议)来创建包,我们得到_PublishedWebsites \ _Package \ .zip中只包含源的zip文件。

我最好的猜测是CopyAllFilesToSingleFolderForPackage正在从错误的位置拾取文件。

我注意到这里问了一个类似的问题 - TFS 2010 and creating a package - 虽然他的解决办法在很多情况下都不合适,但我猜。

我担心的是,这是使用MSBuild / TFS的内置但记录不佳的功能,所以当它不起作用时,你会在荒野中稍微有点。

1 个答案:

答案 0 :(得分:1)

似乎deployOnBuild在每个项目上运行一些类似“包”的目标。如果您已将项目构建到单独的目录(默认情况下默认的TFS 2010构建版本),则打包将不会获取已编译的文件。

一种解决方案是在TFS构建工作流程中删除MSBuild命令的自定义输出文件夹。这将导致编译的文件位于原位并包含在包中。

现在,TFS工作流的其余部分需要进行一些更改,因为它会期望从输出目录传输文件,但它们不会存在。