BC30145:无法发出程序集:<error message>

Visual Basic 编译器会调用程序集链接器(Al.exe,也称为 Alink)来生成一个具有清单的程序集,而该链接器会在创建该程序集的发出阶段报告一个错误。

错误 ID:BC30145

更正此错误

  1. 检查引用的错误信息并参考 Al.exe 主题,以获得进一步的解释和建议。

  2. 尝试使用 Al.exeSn.exe(强名称工具)手动签署程序集。

  3. 如果仍然出现错误,则收集有关该情况的信息并通知 Microsoft 产品支持服务。

手动对程序集进行签名

  1. 使用 Sn.exe(强名称工具))创建公钥/私钥对文件。

    此文件的扩展名为 .snk。

  2. 从项目中删除生成错误的 COM 引用。

  3. 打开 Visual Studio 开发人员命令提示或 Visual Studio 开发人员 PowerShell

  4. 将目录更改为要放置程序集包装的目录。

  5. 输入以下命令:

    tlbimp <path to COM reference file> /out:<output assembly name> /keyfile:<path to .snk file>
    

    你可能会输入的实际命令的示例如下:

    tlbimp c:\windows\system32\msi.dll /out:Interop.WindowsInstaller.dll /keyfile:"c:\documents and settings\mykey.snk"
    

    提示

    如果路径或文件包含空格,则使用双引号。

  6. 在 Visual Studio 中,添加对刚创建的文件的 .NET 程序集引用。

另请参阅