【发布时间】:2017-08-09 00:50:42
【问题描述】:
我有一个由 Clickonce 安装的应用程序 (WPF),现在我需要对其进行签名,以便 Windows 可以将我的公司识别为受信任的颁发者。在我的 C.I. 中使用了以下命令行。工具(带有菱形的参数仅用于举例说明情况):
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe /target:clean;build;publish /p:ApplicationVersion=<VERSION> /p:SignAssembly=true /p:GenerateManifests=true /p:SignManifests=true /p:AssemblyOriginatorKeyFile=<PFX_PATH> /p:ManifestCertificateThumbprint=<CERTIFICATE_ID> /property:Configuration=<CONFIGURATION>;PublishDir=<PUBLISH_DIR>;BootstrapperEnabled=true;PublishUrl=<PUBLISH_URL>;InstallUrl=<INSTALL_URL>;UpdateUrl=<UPDATE_URL> C:\hudson\slave\workspace\NIMBUS-NFE-NFEasy2\NFeasy2\NFeasy2.sln
问题是:只有 setup.exe 被签名,并且只有 SHA-256 算法。因此,当用户运行我的应用程序时,无法识别发行者。此外,在 Windows XP 上运行时,安装程序将永远不会运行,因为 SO 无法识别签名(似乎 WinXP 需要 SHA-1)。
如何设置我的项目或命令行以使用 SHA-1 和 SHA-256 算法对所有文件进行签名?另外,这是否会在每次运行应用程序时停止提示用户许可?如果没有,有办法吗?
谢谢!
【问题讨论】: