使用 WIX 时删除单元测试 dll 文件

发布于 2024-12-12 05:15:06 字数 136 浏览 1 评论 0原文

我正在尝试使用 WIX 为我的项目创建 MSI。我的 HEAT 指向正确的目录,并且它吐出的文件是正确的,但由于某种原因,当我实际在其上运行 MSBuild 时,它还为我提供了所有单元测试 dll 文件。

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

I'm trying to create an MSI for my project using WIX. I've got HEAT pointing to the correct directory and the file it spits out is correct, but for some reason when I actually run MSBuild on it it's also giving me all of my unit test dll files.

Anyone have any idea how to remove those from the build process?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

薄荷→糖丶微凉 2024-12-19 05:15:06

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

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。

One option would be to write an XSL transformation modifying the generated HEAT output (e.g. removing the unwanted files):

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

To remove a specific file your xsl could be something like:

<?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>

This approach allows you to make other changes to the file as well. Though to only remove unwanted files it's usually simpler to just delete them from the build directory or to move the desired files into another directory and run HEAT there.

忆伤 2024-12-19 05:15:06

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

Typically you wouldn't point heat.exe at your default build directory for just this reason. After you compile your product's binaries add a second step to stage the files you want into a second directory. Then, point heat.exe at the staged directory. That way you have more control over the files & paths that get harvested.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文