1

我正在尝试创建一个程序,允许静默安装 Windows 的重要更新。我希望它是单个 .exe 文件,没有任何其他文件、库、图标等。我使用的是 .Net 3.5。我将 wuapi.dll 包含到我的项目的 References 文件夹中。编译后 wuapi.dll 被复制到同一个文件夹,其中包含 .exe 文件(调试或发布)。

我已经阅读了有关使用 ILMerge 将 .dll 文件直接嵌入到 .exe 文件中的不同文章。这是我的问题 - 所有 Windows 计算机在 system32 或 SysWow64 文件夹中都有 wuapi.dll,那么我为什么要将它嵌入到我的项目中呢?有没有办法引用这些库或使用它们的功能而不将它们添加到项目中?

4

1 回答 1

1

在 References 上,选择 wuapi 并将属性 CopyLocal 设置为 false。此外,请确保将 SpecificVersion 设置为 false,否则它可能不适用于用户计算机上安装的任何版本。

我假设 wuapi 可以在 XP 之后的任何 Windows 版本中找到。

通过将“嵌入互操作类型”设置为 true,这仅适用于 .Net 4.0。在 .Net 3.5 上,您不需要部署 wuapi.dll 本身,但需要部署生成的互操作文件。

欲了解更多信息检查:http: //blogs.clariusconsulting.net/kzu/check-your-embed-interop-types-flag-when-doing-visual-studio-extensibility-work/

于 2015-04-09T10:35:09.833 回答