Visual Studio开发的Windows桌面应用在其他设备无法运行求助
解决Windows Defender SmartScreen未知发布者警告问题
临时运行方法(单台机器适用)
- 右键点击应用程序,选择「属性」
- 在「常规」选项卡底部,勾选「解除锁定」(若存在该选项),点击「确定」
- 再次双击运行,此时会出现「更多信息」按钮,点击后选择「仍要运行」
长期解决方案(彻底规避所有用户的警告)
- 配置代码签名:购买正规代码签名证书(EV证书能更快建立应用信誉),在Visual Studio中完成签名配置:
- 右键项目 → 属性 → 签名
- 勾选「为ClickOnce清单签名」,点击「选择证书」导入你的代码签名证书
- 切换到「生成」选项卡,确保Release模式下启用签名
- 手动签名编译后的程序:若项目未配置自动签名,可使用
signtool.exe手动签名,命令示例:
注意:必须添加时间戳,否则证书过期后签名会失效signtool sign /f "你的证书文件.pfx" /p "证书密码" /t "http://timestamp.digicert.com" "目标应用.exe" - 企业内部信任策略:如果是公司内部使用,可将代码签名证书导入企业组策略,让所有内部机器信任该证书,彻底消除警告
关于「Smart Screen can't be reached」提示的补充
该提示是因为用户机器无法连接微软SmartScreen验证服务器,正常联网时未签名应用通常会显示「未知发布者」但提供「仍要运行」选项。修复网络问题(如检查防火墙、代理设置)可让用户看到完整选项,但这只是临时缓解,最根本的解决方式还是给应用签名。
内容的提问来源于stack exchange,提问作者Vamsi Krishna
相关产品推荐
相关产品推荐

