【问题标题】:Visual Studio 2015 vdproj -- Change or Remove Digital SignatureVisual Studio 2015 vdproj -- 更改或删除数字签名
【发布时间】:2015-12-08 01:51:20
【问题描述】:

我从以前的程序员那里得到了一个旧版 Visual Studio 解决方案文件,其中有一个 vdproj,它会生成一个 .msi 安装程序。我正在使用 Visual Studio 2015 社区版,为了使用 vdproj,我在 this location 安装了扩展程序,以便实际创建 msi。就创建一个安装功能软件的合法安装程序而言,这一切都很好,除了代码签名的一些错误。在 Windows 10 上,Edge 浏览器指出文件的签名已损坏或无效,并且在尝试安装产品时会抛出类似的警告。您可以跳过警告,但我们不希望我们的客户不得不处理这个问题。

该软件的旧版本(v4.0.106)没有问题。它的 MSI 文件甚至没有数字签名选项卡,所以我很困惑。

如果重要的话,主项目是一个 C++ 项目 (vcxproj)。

任何人都对如何:

  • 在 Visual Studio 中完全修复代码签名问题
  • 在 Visual Studio 中删除 MSI 创建中的数字签名步骤,因此我根本不必处理这个问题

我在以下链接中有一些关于这些问题的图片:click。没有更多代表,我不能发布超过 1 个链接或 1 张图片。

【问题讨论】:

    标签: windows-installer visual-studio-2015 vdproj vcxproj


    【解决方案1】:

    不幸的是,似乎没有办法在 Visual Studio 2015 中修改代码签名步骤,至少我能找到。我最终没有使用客户端处理 MSI,而是使用Inno Setup 将 MSI 捆绑在一个可执行文件中。由于 exe 没有签名问题,浏览器不会抱怨。因此,设置工具的创建涉及一个额外的步骤,但我们的客户有一个更轻松的时间。

    为了让 Inno Setup 运行 MSI 文件,您可以修改以下脚本:

    [Setup]
    AppName=AppName
    AppVersion=4.0.107
    DefaultDirName={pf}\DirName
    DefaultGroupName=GroupName
    UninstallDisplayIcon={app}\UDisplayIcon.exe
    OutputDir=userdocs:Inno Setup Examples Output
    
    [Files]
    Source: MSIInstaller.msi; DestDir: {tmp}; Flags: deleteafterinstall; 
    
    [Run]
    ; run msi installer
    Filename: "msiexec.exe"; Parameters: "/i ""{tmp}\MSIInstaller.msi"" /qb"; WorkingDir: {tmp};  
    

    【讨论】:

      【解决方案2】:

      您的问题在于 Win10 Edge 浏览器本身,在 Win10 上不再支持证书上的 SHA1 加密,您需要 SHA256

      【讨论】:

      • 那么,真正的解决方案是使用支持 SHA-256 的外部代码签名证书/方法重新签署 MSI?我不完全确定您是否可以重新签署 MSI 文件,但我认为执行此类操作只会添加第二个数字签名。
      猜你喜欢
      • 2016-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-21
      相关资源
      最近更新 更多