windows-installer - 发布软件并为其创建安装程序的“正确”方式
问题描述
假设我刚刚在 Visual Studio 中创建了一个应用程序,现在我想分发它。我已将应用程序设置为发布模式,并且我有一个运行良好的应用程序副本。我的主要问题是我将如何为它创建一个安装程序并确保 Windows 知道它是值得信赖的?我必须创建某种证书吗?
我一直在搜索并下载 NSIS,但我不确定如何使用它,所以我只使用了 Inno Setup Compiler,它工作得很好。有时 Avast 会检查我的应用程序并在打开它之前大约需要 5 或 10 秒,但其他应用程序不会发生这种情况。
这是avast的问题吗?
解决方案
部署工具:这是关于常见 MSI 工具的文章,以及其他非 MSI 部署工具的链接。Stefan Kruger 的网站installsite.orgMSI
的链接显示了适用于和的可用工具的完整列表non-MSI
。最常见的工具是:(WiX
开源,学习曲线 - 这里的提示),Advanced Installer
(伟大的工具,很多智慧),Installshield
(市场领导者)等等。看一看。
SmartScreen:Windows 现在具有“SmartScreen”功能 - 这是一个基于信任的系统,您的二进制文件必须通过使用来“赢得声誉”。本质上,您需要直接购买Extended Validation Certificate
“购买信任”(有趣的概念......谁闻到球拍的味道?):
VirusTotal.com:我喜欢将我的二进制文件上传到VirusTotal.com。他们使用大量恶意软件扫描程序检查二进制文件,您可以查看是否有任何扫描程序将您的二进制文件标记为可疑。检查发布文件中的真正恶意软件(发生)以及(同样重要的是)误报,否则会导致您的用户问题和大量支持电话。
声誉:请注意,我不确定上传是否有助于 SmartScreen 的二进制文件声誉。我认为不会——至少不会很快。您需要EV code-signing certificate
“购买信任”来进行大规模分发。我应该补充一点,对此类证书的审查和批准涉及验证公司的存在(如普通证书),但也包括加密狗或硬件密钥 - 我认为 - 因此获得相当大的麻烦,因此确实“证明”分销商至少必须组织良好。
链接:
推荐阅读
- java - 如何使用 java 流根据键将映射值分组到列表中?
- hive - Hive:当“where”条件包含子查询时执行错误
- eclipse - 如何解决sbteclipse-plugin错误
- angular - ng-repeat 集合到表格单元格的数组不起作用
- bash - Docker 获取已创建网络的 IP 地址列表(子网的 IP 范围)
- cmake - 如何在 add_custom_command 中按顺序运行 cmake 命令
- powershell - 无法识别 Set-OrganizationConfing,即使我可以 Get-OrganizationConfig
- group-by - 如何通过识别列名中的唯一字符串来创建子组
- vmware-clarity - Datagrid过滤器/基于功能的列排序
- javascript - 是否可以使用 javascript 创建动态 Django 变量?