Jak podpisać pliki instalacyjne Visual Studio.msi

Ostatnio kupiłem certyfikat authenticode od globalsign i mam problemy z podpisaniem moich plików do wdrożenia. Jest ich kilka .pliki exe, które są generowane przez projekt, a następnie umieścić w .msi. Kiedy podpiszę .pliki exe z signtool certyfikat jest ważny i działają dobrze. Problem polega na tym, że kiedy buduję .msi (za pomocą projektu Visual studio setup).pliki exe tracą sygnatury. Więc mogę podpisać .msi po jego zbudowaniu, ale zainstalowany .exe pliki kontynuują całą działalność "nieznanego wydawcy". Jak mogę zachować podpis na tych plikach do instalacji na komputerze klienckim?

Author: Brian J, 2009-10-31

3 answers

Visual Studio tworzy dwa foldery w czasie kompilacji: obj i bin. Okazuje się, przynajmniej w moim przypadku, wyjście będzie zawsze kopiowane z folderu obj do folderu bin. Podpisywałem pliki wykonywalne w folderze bin tylko po to, aby je nadpisać, a następnie zapakować do msi. Podpisanie plików wykonywalnych w folderze obj rozwiązało problem.

 12
Author: Alex,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-11-02 15:56:53

Możesz dodać następujący PostBuildEvent do twojego projektu VS Setup (właściwości projektu):

Windows 8.0:

"C:\Program Files (x86)\Windows Kits\8.0\bin\x86\signtool.exe" sign /a  $(BuiltOuputPath)

Windows 10:

"C:\Program Files (x86)\Windows Kits\10\bin\x86\signtool.exe" sign /a  $(BuiltOuputPath)

Okno Właściwości projektu

Sightseeing (w języku angielskim) jest używany przez sightseeing (w języku angielskim). Możesz użyć flagi / f do określenia certyfikatu podpisywania, / p do określenia hasła cert, itd

Zauważ również, że $(BuildOuputPath) jest źle napisane. to jest celowo. Dzięki microsoft...

 12
Author: gyzpunk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-19 19:20:21

Czy jesteś pewien, że projekt instalatora patrzy na podpisany plik binarny, a nie na niepodpisany ?

Nie używam za bardzo MSI Buildera, ale dziwi mnie, że w ogóle modyfikuje pliki, które pakuje.

 0
Author: Bahbar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-31 10:04:18