使用WIX时删除Unit Test dll文件

时间:2011-10-26 17:36:46

标签: .net msbuild wix windows-installer

我正在尝试使用WIX为我的项目创建一个MSI。我有热量指向正确的目录,它吐出的文件是正确的,但出于某种原因,当我实际运行MSBuild时,它也给了我所有的单元测试dll文件。

任何人都知道如何从构建过程中删除它们?

2 个答案:

答案 0 :(得分:3)

一种选择是编写修改生成的HEAT输出的XSL转换(例如删除不需要的文件):

heat.exe dir <other arguments> -t my.xsl

要删除特定文件,您的xsl可能类似于:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
  <xsl:output method="xml" indent="yes"/>

  <xsl:template match="@* | node()">
    <xsl:copy>
      <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
  </xsl:template>
  <xsl:template match="node()[child::node()[@Source='UnwantedAssembly.dll']]" />
</xsl:stylesheet>

此方法也允许您对文件进行其他更改。虽然只删除不需要的文件,但从构建目录中删除它们或将所需文件移动到另一个目录并在那里运行HEAT通常更简单。

答案 1 :(得分:1)

通常,出于这个原因,您不会将heat.exe指向默认的构建目录。编译产品的二进制文件后,再添加第二步,将所需的文件存储到第二个目录中。然后,将heat.exe指向staged目录。这样你就可以更好地控制文件和文件。收获的路径。