为什么在部署 ClickOnce 后突然在 Chrome 中收到 "Not commonly downloaded" 警告?
Why do I suddenly get the "Not commonly downloaded" warning in Chrome after ClickOnce deployment?
已将我的 ClickOnce 应用程序中的 Telerik 升级到版本 2014.3.1202.40。 (不确定最好的方法。安装后,我对 Telerik 控件的所有引用都被破坏了,我不得不删除每个项目中的所有 Telerik 引用并重新添加它们。所以,我可能正在升级方法不对。但那是另一回事。)
我将我的应用程序部署到我的网络服务器上的暂存文件夹,然后再移至生产环境。该应用程序使用 Comodo 的商业代码签名证书签名,该证书直到 2019 年才会过期。我已经多次上传新版本,没有任何问题。但是现在,由于我升级了 Telerik 控件,我无法下载和安装应用程序。这是发生了什么:
- 在Chrome中,我输入url:http://porpoiseanalytics.com/PorpoiseStaging/setup.exe
- 我收到 "Not commonly downloaded" 警告,而我以前从未收到过警告。我在 Firefox 和 IE 上都没有收到任何错误。
- 如果我告诉 Chrome 保留文件,我就可以启动它。安装也会在所有其他浏览器上开始。
- 大约 3/4 的文件下载过程中,Avast 用 DRep 病毒阻止了它(我猜缺乏声誉)。如果我关闭 Avast,它可以正常安装。 ClickOnce 安装日志显示错误:"Exception occurred loading manifest from file [application].exe: the manifest may not be valid or the file could not be opened."
为什么我的应用程序在下载了几个月没有问题后突然表现得好像没有信誉。但是,在我修改 VS2010 中的应用程序然后删除并重新添加 Telerik dll 之后,我突然没有了声誉。更糟糕的是,现在我位于 ttp://porpoiseanalytics.com/PorpoiseDownload/setup.exe 的产品下载突然以同样的方式运行。
我承认我对声誉、签名和clickonce 的理解不够好。但我确实知道,在我们没事之前,在部署应用程序之后,我们被标记为恶意软件。我在程序中做了一些代码更改(不多),但我也替换了 Telerik dll。可能与签名和发布有关,但我无法弄清楚。请帮忙。谢谢
我想我明白了。虽然我已经在主 UI 项目(安装程序)中签署了清单,但可执行文件并未签署。在一些帮助下,学会了如何做到这一点:
- 使用 signtool 下载 Windows 7 SDK。
- 在 Visual Studio 中,打开主 UI 项目中的项目属性。
- 打开“编译”选项卡并单击“生成事件”按钮。
在 post-build 事件中,输入:
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\signtool.exe" sign /f "$(ProjectDir)[代码证书文件名称]" /p "[密码]" /t http://timestamp.comodoca.com/authenticode "$(ProjectDir)obj\$(ConfigurationName)\[exe名称].exe
其中 [证书文件名称] 是代码签名证书文件的名称,例如 private_key.pfk,[密码] 是导出证书时使用的密码(如果密码中包含 % 用 %% 转义,那么 pass%word 将输入为 pass%%word), [exe name ] 是您的主要项目可执行文件的名称。
在解决方案中的其他项目中,通过在相同的 post-build 位置插入类似的命令行来签署这些项目:
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\signtool.exe" sign /f "$(ProjectDir)DAD_Code_Certificate.pfx" /p "<password>" /t http://timestamp.comodoca.com/authenticode "$(TargetPath)
原始问题
我的理论是,最初的问题是由于 Avast 2015 中的一项新功能引起的,该功能执行 DomainRep(信誉?)检查,如果所有条件都满足,则警报响起并停止下载。因为我的可执行文件没有签名,它满足所有要求。
有可能(虽然我真的不确定)因为这个 DRep 警报,Google 将我们网站上的安装程序标记为恶意,导致第一次出现红色 "not normally downloaded" 警告开始下载。
至少,这是我最好的猜测。其他人肯定会比我更了解这一点(并且首先会通过签署可执行文件来避免它)。
来自 Google Apps 技术支持的官方回答(我在 Silver 支持计划中 - 150 美元/月):
I replicated the issue you are describing and it looks to be a known
issue with Google Chrome, when trying to download an archive that has
an executable in it.
Please be advised that Google Chrome is outside the support scope of
Google Cloud, however the workaround is rather simple: when that
message appears you can click on the arrow to the right of that
message and chose "keep". This will download the file requested.
已将我的 ClickOnce 应用程序中的 Telerik 升级到版本 2014.3.1202.40。 (不确定最好的方法。安装后,我对 Telerik 控件的所有引用都被破坏了,我不得不删除每个项目中的所有 Telerik 引用并重新添加它们。所以,我可能正在升级方法不对。但那是另一回事。)
我将我的应用程序部署到我的网络服务器上的暂存文件夹,然后再移至生产环境。该应用程序使用 Comodo 的商业代码签名证书签名,该证书直到 2019 年才会过期。我已经多次上传新版本,没有任何问题。但是现在,由于我升级了 Telerik 控件,我无法下载和安装应用程序。这是发生了什么:
- 在Chrome中,我输入url:http://porpoiseanalytics.com/PorpoiseStaging/setup.exe
- 我收到 "Not commonly downloaded" 警告,而我以前从未收到过警告。我在 Firefox 和 IE 上都没有收到任何错误。
- 如果我告诉 Chrome 保留文件,我就可以启动它。安装也会在所有其他浏览器上开始。
- 大约 3/4 的文件下载过程中,Avast 用 DRep 病毒阻止了它(我猜缺乏声誉)。如果我关闭 Avast,它可以正常安装。 ClickOnce 安装日志显示错误:"Exception occurred loading manifest from file [application].exe: the manifest may not be valid or the file could not be opened."
为什么我的应用程序在下载了几个月没有问题后突然表现得好像没有信誉。但是,在我修改 VS2010 中的应用程序然后删除并重新添加 Telerik dll 之后,我突然没有了声誉。更糟糕的是,现在我位于 ttp://porpoiseanalytics.com/PorpoiseDownload/setup.exe 的产品下载突然以同样的方式运行。
我承认我对声誉、签名和clickonce 的理解不够好。但我确实知道,在我们没事之前,在部署应用程序之后,我们被标记为恶意软件。我在程序中做了一些代码更改(不多),但我也替换了 Telerik dll。可能与签名和发布有关,但我无法弄清楚。请帮忙。谢谢
我想我明白了。虽然我已经在主 UI 项目(安装程序)中签署了清单,但可执行文件并未签署。在一些帮助下,学会了如何做到这一点:
- 使用 signtool 下载 Windows 7 SDK。
- 在 Visual Studio 中,打开主 UI 项目中的项目属性。
- 打开“编译”选项卡并单击“生成事件”按钮。
在 post-build 事件中,输入:
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\signtool.exe" sign /f "$(ProjectDir)[代码证书文件名称]" /p "[密码]" /t http://timestamp.comodoca.com/authenticode "$(ProjectDir)obj\$(ConfigurationName)\[exe名称].exe
其中 [证书文件名称] 是代码签名证书文件的名称,例如 private_key.pfk,[密码] 是导出证书时使用的密码(如果密码中包含 % 用 %% 转义,那么 pass%word 将输入为 pass%%word), [exe name ] 是您的主要项目可执行文件的名称。
在解决方案中的其他项目中,通过在相同的 post-build 位置插入类似的命令行来签署这些项目:
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\signtool.exe" sign /f "$(ProjectDir)DAD_Code_Certificate.pfx" /p "<password>" /t http://timestamp.comodoca.com/authenticode "$(TargetPath)
原始问题
我的理论是,最初的问题是由于 Avast 2015 中的一项新功能引起的,该功能执行 DomainRep(信誉?)检查,如果所有条件都满足,则警报响起并停止下载。因为我的可执行文件没有签名,它满足所有要求。
有可能(虽然我真的不确定)因为这个 DRep 警报,Google 将我们网站上的安装程序标记为恶意,导致第一次出现红色 "not normally downloaded" 警告开始下载。
至少,这是我最好的猜测。其他人肯定会比我更了解这一点(并且首先会通过签署可执行文件来避免它)。
来自 Google Apps 技术支持的官方回答(我在 Silver 支持计划中 - 150 美元/月):
I replicated the issue you are describing and it looks to be a known issue with Google Chrome, when trying to download an archive that has an executable in it.
Please be advised that Google Chrome is outside the support scope of Google Cloud, however the workaround is rather simple: when that message appears you can click on the arrow to the right of that message and chose "keep". This will download the file requested.