Visual Studio 2019 16.11.5 ClickOnce发布成功却未推送至网络共享问题
Visual Studio 16.11.5 ClickOnce发布未推送至网络共享排查点
- 检查发布配置文件生效状态
打开项目根目录下的*.pubxml发布配置文件,确认<InstallUrl>、<PublishUrl>节点的值与预期的网络共享路径完全一致。16.11.5版本存在旧配置节点读取异常的已知问题,会默认将临时输出路径作为最终发布路径,覆盖用户配置。 - 调高生成日志级别验证路径流转
在VS导航栏选择工具->选项->项目和解决方案->生成并运行,将MSBuild项目生成输出详细程度调整为详细,重新发布后在日志中搜索PublishUrl、CopyToPublishDirectory关键字,确认是否存在路径重写、复制步骤被跳过的记录。 - 验证增量发布逻辑的影响
16.11.5版本优化了ClickOnce增量发布校验逻辑,当检测到目标路径存在哈希一致的同名文件时,会跳过所有文件复制步骤仅提示发布成功。可先删除目标共享路径下的所有已发布文件,再重新发布测试。 - 检查UNC路径格式兼容性
该版本对UNC网络路径的格式校验更严格,若路径末尾缺少反斜杠、路径中存在未转义的特殊字符,会被识别为非法路径,自动回退到临时文件夹输出。标准网络共享路径需符合\\服务器名\共享文件夹\的格式要求。 - 验证ClickOnce打包工具版本Bug
16.11.5附带的Microsoft.Build.Tasks.Core包存在已知Bug,会跳过非本地发布目标的复制步骤。可在项目文件(.csproj/.vbproj)中添加强制复制逻辑临时验证:<Target Name="ForcePublishCopy" AfterTargets="Publish"> <ItemGroup> <PublishFiles Include="$(PublishDir)**\*" /> </ItemGroup> <Copy SourceFiles="@(PublishFiles)" DestinationFiles="@(PublishFiles->'$(PublishUrl)%(RecursiveDir)%(Filename)%(Extension)')" OverwriteReadOnlyFiles="true" /> </Target> - 排查清单签名校验逻辑变更影响
该版本对ClickOnce清单签名的校验逻辑升级,若签名证书过期、根证书未被系统信任,会静默终止发布后的推送步骤,仅在临时文件夹保留未完成签名的打包文件。
内容的提问来源于stack exchange,提问作者RubberChickenLeader
相关产品推荐
相关产品推荐

