You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Wix Toolset v3.11缺失AssemblyDefaultWixExtensionAttribute问题求助

Wix v3.11 CustomAction 报错排查与修复

核心问题梳理

你当前遇到的Microsoft.Tools.WindowsInstallerXml.AssemblyDefaultWixExtensionAttribute加载错误,加上CustomAction无法运行,主要是由函数名不匹配、错误打包依赖DLL、无效自定义操作这几个问题导致的,以下是针对性修复步骤:


1. 修复CustomAction入口函数名称不匹配

在Product.wxs里你定义的CustomAction入口是Netload,但C#代码里的函数名是CustomAction,这直接导致Windows Installer找不到执行入口,是最关键的错误。

修改Product.wxs中的CustomAction定义:

<CustomAction Id="Netload" BinaryKey="eContactNetloadBinary" DllEntry="CustomAction" Execute="deferred" Return="check" />

2. 删除不必要的依赖DLL打包

你在Product.wxs里把Microsoft.Deployment.WindowsInstaller.dll作为组件打包到安装包,但这个DLL是Wix工具集的编译依赖,不需要部署到用户机器——CustomAction运行时会由Windows Installer自动加载对应的系统依赖。

删除以下组件定义:

<Component Id="Microsoft.Deployment.WindowsInstaller.dll" Guid="******">
    <File Id="Microsoft.Deployment.WindowsInstaller.dll" Name="Microsoft.Deployment.WindowsInstaller.dll" Source="Dependencies\Microsoft.Deployment.WindowsInstaller.dll" KeyPath="yes" />
</Component>

3. 移除无效的CustomActions.wxs操作

CustomActions.wxs里尝试直接运行DLL(&quot;[INSTALLFOLDER]eContactNetload.dll&quot; /register)是完全错误的——.NET类库DLL不能直接作为可执行文件运行,这个自定义操作毫无意义,还会引发额外错误。

直接删除整个CustomActions.wxs文件,或者移除其中的所有内容。


4. 解决AssemblyDefaultWixExtensionAttribute加载错误

这个报错通常是依赖版本不匹配或项目配置问题导致的:

  • 确保eContactNetload项目引用的是Wix v3.11安装目录下的C:\Program Files (x86)\WiX Toolset v3.11\bin\Microsoft.Deployment.WindowsInstaller.dll,不要用NuGet包或其他版本的文件。
  • 检查eContactNetload项目的目标框架:Wix v3.11推荐用.NET Framework 4.0/4.5,避免用过高版本。
  • 把该DLL的Copy Local属性设为False(右键引用→属性),不需要复制到输出目录,Wix编译时会自动处理。

5. 补充:Deferred CustomAction的注意事项

你的CustomAction是延迟执行的,需要额外注意:

  • 代码中FindLispFile和GetAutoCADVersion函数要确保能正确定位路径,避免因权限或版本检测失败导致安装终止。
  • 如果需要写入系统目录,延迟执行的CustomAction默认拥有系统权限,不需要额外配置,但要处理好文件读写异常。

验证步骤

  1. 清理所有项目的输出目录
  2. 重新生成eContactNetload和eContactDeveloper项目
  3. 生成eContactInstaller项目,检查是否还存在原报错
  4. 测试安装包,确认AutoCAD的LSP文件是否正确添加了NETLOAD命令

内容的提问来源于stack exchange,提问作者bagofmilk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 05:45:18