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

如何从VSTO项目中彻底移除或禁用ClickOnce部署?

解决VSTO项目构建自动恢复ClickOnce配置的问题

我按照官方指南为Office插件创建了MSI安装程序,完全不需要ClickOnce,但每次手动移除项目文件里的以下ClickOnce相关配置节点后,执行构建操作这些配置又会自动恢复:

<IsWebBootstrapper>False</IsWebBootstrapper>
<BootstrapperEnabled>true</BootstrapperEnabled>
<PublishUrl>publish\</PublishUrl>
<InstallUrl />
<TargetCulture>en</TargetCulture>
<ApplicationVersion>1.0.0.0</ApplicationVersion>
<AutoIncrementApplicationRevision>false</AutoIncrementApplicationRevision>
<UpdateEnabled>true</UpdateEnabled>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>days</UpdateIntervalUnits>
<ProductName>MyAddIn</ProductName>
<PublisherName>Contoso</PublisherName>
<SupportUrl />
<FriendlyName>My Add-In</FriendlyName>
<OfficeApplicationDescription>My Add-In</OfficeApplicationDescription>
<LoadBehavior>3</LoadBehavior>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>

补充说明:试过启用/禁用“启用ClickOnce安全设置”“为ClickOnce清单签名”选项,均无效果;网上旧解决方案已失效,当前VSTO项目似乎无法通过常规操作禁用ClickOnce设置。


核心修复方案:修改项目类型GUID

VSTO项目默认绑定了ClickOnce相关的项目类型标识,这是配置自动恢复的根源,需手动编辑项目文件彻底移除:

  1. 关闭Visual Studio,找到项目的.csproj/.vbproj文件,用文本编辑器打开
  2. 找到<ProjectTypeGuids>节点,默认内容类似:
    <ProjectTypeGuids>{BAA0C2D2-18E2-41B9-852F-F413020CAA33};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
    
    其中{BAA0C2D2-18E2-41B9-852F-F413020CAA33}是VSTO ClickOnce专属GUID
  3. 删除该GUID,只保留类库类型的GUID:
    <ProjectTypeGuids>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
    
  4. 保存文件后重新打开Visual Studio

后续清理步骤

完成上述修改后,还需清理残留的ClickOnce相关配置:

  • 打开项目属性的「发布」选项卡,点击「清除」按钮(若存在)
  • 删除项目目录下的publish文件夹
  • 执行「清理解决方案」后重新构建项目

验证

重新构建后检查项目文件,确认之前自动恢复的ClickOnce配置节点不再出现,同时验证MSI安装程序的构建流程正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 10:41:18