You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何缩短ClickOnce安装生成的快捷方式名称?解决路径过长问题

解决ClickOnce签名后路径过长导致无法运行的问题

可行解决方案(除缩短套件/产品名外)

  • 简化证书的专有名称(DN)
    这是从根源解决问题的办法。签名后ClickOnce会将证书的DN作为开始菜单快捷方式的上层文件夹,因此可以重新生成一个字段更简短的代码签名证书:

    • 若为内部自签名证书:使用New-SelfSignedCertificate命令生成时,只保留必要的短字段值,比如将冗长的组织名、部门名缩写,仅保留核心的通用名称(CN)、国家(C)等。示例命令:
      New-SelfSignedCertificate -DnsName "ShortAppCert" -CertStoreLocation "Cert:\CurrentUser\My" -Subject "CN=ShortCo, C=US"
      
    • 若为公共CA颁发的证书:联系CA提供商申请重新签发,要求使用更精简的DN字段组合。
  • 通过发布后脚本自定义快捷方式路径
    借助MSBuild任务或脚本,将生成的长路径快捷方式迁移到更短的位置,并同步更新ClickOnce的注册信息:

    1. 在项目文件(.csproj/.vbproj)中添加MSBuild目标,指定发布完成后执行自定义脚本:
      <Target Name="PostPublishFixShortcut" AfterTargets="Publish">
        <Exec Command="powershell.exe -ExecutionPolicy Bypass -File $(ProjectDir)AdjustShortcutPath.ps1" />
      </Target>
      
    2. 编写PowerShell脚本AdjustShortcutPath.ps1:将[Certificate DN]\[Suite name]目录下的快捷方式移动到Programs文件夹下的短名称目录(如ShortSuite),同时修改HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall下对应ClickOnce应用的注册表项,更新快捷路径记录。
  • 启用Windows长路径支持
    针对Windows 10 1607及以上版本,可通过系统设置突破传统260字符路径限制:

    • 组策略方式:打开本地组策略编辑器(gpedit.msc),导航至计算机配置 > 管理模板 > 系统 > 文件系统,启用「启用 Win32 长路径」选项。
    • 注册表方式:打开注册表编辑器(regedit),定位到HKLM\SYSTEM\CurrentControlSet\Control\FileSystem,将LongPathsEnabled(DWORD类型)的值设为1。
      注意:部分依赖旧API的老旧组件可能不兼容长路径,启用前需完成兼容性测试。

吐槽

不得不说,2025年还要跟Windows的路径长度限制死磕,实在让人憋屈——这种几十年前的技术限制,到现在还在拖现代应用部署的后腿,完全不合理。

内容的提问来源于stack exchange,提问作者Bradley Plett

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 13:05:19