为什么“;签署ClickOnce清单“;复选框保持默认为在生成时选中
本文关键字:ClickOnce 签署 清单 复选框 为什么 默认 | 更新日期: 2023-09-27 18:22:12
与签署ClickOnce清单密切相关的复选框在发布时保持默认选中状态。这个问题中列出的答案都没有帮助我
我的解决方案中有两个项目,以及其他参考项目。一个项目是C#Windows Presentation Foundation (WPF)
(输出类型为Windows应用程序),当我取消选中"Sign the ClickOnce manifest"时,它在构建后仍处于未选中状态。
第二个项目也是启动项目,是Visual Studio Tools for Office (VSTO)
项目(输出类型默认为类库,无法更改)。当我在其中取消选中"签署ClickOnce清单",然后构建解决方案(或仅构建项目)时,在整个构建过程完成后,该选项将再次被选中。
我不熟悉.csproj文件中的XML数据,但我发现了一些可能相关的东西:
1
在VSTO项目的.csproj文件中,有一个注释部分指出:
This section enables pre- and post-build steps. However, in VSTO use MSBuild tasks instead of these properties.
本节定义了<SignManifests>
、<SignAssembly>
和<ManifestCertificateThumbprint>
。前两个是错误的。第二个有一些独特的钥匙。
2
在找到关于MSBuild任务的注释后,我后来发现:
<!-- Include additional build rules for an Office application add-in. -->
<Import Project="$(MSBuildExtensionsPath)'Microsoft'VisualStudio'v10.0'OfficeTools'Microsoft.VisualStudio.Tools.Office.targets" />
这是一个非常大的文件,有多个签名之类的引用。签名选项未选中的项目在其.csproj文件中没有此<Import Project>
行。
问题
现在,我还不完全知道.targets文件是关于什么的,在我知道我想要什么之前,我不愿意为了寻找解决方案而对它进行彻底的销毁。这个文件可能是我问题的原因吗?如果是,我该如何修改它以防止它妨碍我?如果没有,以前有没有人遇到过这种情况,可以提供解决方案?
编辑:
我刚刚读了《如何不签署ClickOnce清单》,它再次谈到了发布。我仍然很好奇是否可以将其从我的构建中关闭。当我发布应用程序时,我毫不犹豫地对其进行签名,但我更愿意在不发生默认情况的情况下构建它。
这是VSTO团队成员的一篇文章。http://web.archive.org/web/20090604042157/http://blogs.msdn.com:80/vsto/archive/2009/04/29/signing-and-re-signing-manifests-in-cackonce.aspx
解释是VSTO需要对ClickOnce部署进行签名,因为外接程序必须在增强的安全模型下运行。这篇文章要详细得多。