为什么Tfs2010先建立我的Wix项目?

时间:2010-04-16 22:17:08

标签: wix tfs2010 tfsbuild team-build

6 个答案:

答案 0 :(得分:17)

它是一个bug,一个bug,一个bug。 Dunno谁负责,但这是一个工作脏肮脏的黑客:

  1. 在记事本中打开.sln文件。
  2. 在项目列表中找到您的wix项目。
  3. 将它们剪切掉,并在列出所有其他项目后将其粘贴回来。
  4. 在洗澡时哭泣,当你试图擦去脏污时,只是在几个小时后出现,揉搓原料,仍然像肮脏的恶臭一样紧贴着你,就像尸体的皮肤一样。

答案 1 :(得分:4)

在Rob Mensching编辑我原来的帖子之后,最近确实已经在WiX 3.6.0917.0中修复了这个问题。

答案 2 :(得分:3)

我在本地和TFS版本中看到了这个问题(wix 3.7没有找到依赖项目输出)(对于VS2010和VS2012)。

我终于通过将msbuild属性/m:1设置为仅使用单个构建过程来解决它。我设置/m以允许msbuild确定它可以用来同时构建的进程数。

答案 3 :(得分:1)

TFS使用一组属性来控制要构建的解决方案和配置的名称(迭代)。对于解决方案和配置的每个组合,它然后使用项目依赖性/构建顺序来控制构建的项目的顺序。您的EXE / DLL可能是AnyCPU,并且您的WiX是x86,虽然WiX依赖于EXE / DLL,但是在您的AnyCPU之前构建了x86。或者他们甚至可能处于不同的解决方案中,所以在不查看源代码的情况下很难分辨,但这基本上就是它的工作方式。

答案 4 :(得分:1)

我们做的是先report the bug to wix,然后我们找到了你的问题。

我们通过说默认情况下wix项目将构建引用来解决我们这方面的问题。我们通过在设置路径的项目中设置<BuildProjectReferences>True</BuildProjectReferences>来更新文件C:\ Program Files \ MSBuild \ Microsoft \ WiX \ v3.5 \ wix2010.targets。所以,是的,我们已经手动完成了这项工作;我们已经报告了这个错误以及我们的修复。

答案 5 :(得分:0)

我今天遇到了同样的问题并找到了这样的解决方案:

在记事本上打开解决方案文件,找到您的安装项目并更改postProject设置。这将告诉msbuild这个项目应该等待另一个项目来构建。我不知道为什么,但默认情况下没有添加。

Project("{GUID}") = "MyInstaller", "MyInstallerPath", "{Installer Project GUID}" ProjectSection(ProjectDependencies) = postProject {Prebuild Project GUID} = {Prebuild Project GUID} EndProjectSection EndProject

'Prebuild Project GUID'是您要安装的项目右侧的数字。