windows-installervisual-studio-2015vdprojvcxproj

Visual Studio 2015 vdproj -- Change or Remove Digital Signature


I've got a legacy Visual Studio solution file from a previous programmer that has a vdproj in it which produces a .msi installer. I'm using Visual Studio 2015 Community Edition, and in order to use the vdproj, I've installed the extension at this location in order to actually create the msi. It all works just fine in terms of creating a legitimate installer that installs functional software, except for some error with code signing. On Windows 10, the Edge browser states that the signature of the file is corrupt or invalid, and it throws up similar warnings when attempting to install the product. You can skip past the warnings, but we don't want our client(s) to have to deal with that.

The older version of the software (v4.0.106) has no problems. Its MSI file has no Digital Signatures tab, even, so I'm very confused.

The main project is a C++ project (vcxproj) if that matters.

Anyone have any ideas on how to either:

I've got some images up of the issues at the following link: click. Without more rep, I can't post more than 1 link or 1 image.


Solution

  • Unfortunately, it appears as though there is no way to modify the code signing steps within Visual Studio 2015, at least that I could find. Instead of clients dealing with the MSI at all, I ended up bundling the MSI in an executable file using Inno Setup. Since the exe had no signing issues, browsers don't complain. Thus, there's an extra step involved in the setup tool creation, but our clients have an easier time.

    In order to have Inno Setup run MSI files, you can modify the following script:

    [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};