wix - Wix:如何删除标记为永久的 GAC 文件
问题描述
以前版本的 MSI 将一些 GAC 文件标记为永久文件,现在我想在升级到同一程序的较新版本时删除这些文件。是否可以使用 Wix 代码执行此操作,还是我必须始终手动删除文件?
解决方案
我不知道您是否可以完全删除该组件,因为它是永久的,但您可以删除该文件。
我通过创建一个名为 Client.exe 的组件和一个名为 Server.dll 的组件进行了测试,该组件标记为 Permanent="yes" 和 Assembly=".net"。
<DirectorySearch
Id="SERVERFOLDER"
Path="[WindowsFolder]Microsoft.NET\assembly\GAC_MSIL\Server\v4.0_1.0.0.0__bb771c317b736a07" AssignToProperty="yes">
</DirectorySearch>
<RemoveFile Id="oldfile" Property="SERVERFOLDER" Name="Server.dll" On="both"/>
<RemoveFolder Id ="old" Property="SERVERFOLDER" On="both"/>
删除文件/文件夹元素被添加到 Client.exe 组件。
这会导致从 GAC 中删除 Server.dll。但我不得不问,为什么要打扰?GAC 中的文件具有强名称,不应破坏任何不引用它的内容。此外,它不会占用太多磁盘空间或用户真正看到的任何东西。
推荐阅读
- php - 如何获取if块执行计数的数量
- python - 为什么“不是无”不能与 dataframe.loc 一起使用,但“!= None”可以正常工作?
- react-native - React Native 中的数据表
- docker - 将 docker 映像重置为初始状态
- python - 像 jupyter notebook 一样将 python 脚本输出转换为 pdf
- c# - ftp 发布后 Web 应用程序视图未更新(从 Net Core 1.x - 2.2 升级后)
- android - 应用程序安装在 Play 商店但未启动 Android
- python - DataFrame 合并以排除额外的索引列
- python - 使用 python 对 API 进行负载测试
- php - 如何从我无法访问的php SFTP上传文件