3

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

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

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

任何人都对如何:

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

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

4

2 回答 2

1

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

于 2016-04-12T08:58:12.573 回答
0

不幸的是,似乎没有办法在 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};  
于 2015-09-28T20:05:00.420 回答