与签署 ClickOnce 清单密切相关的复选框保持默认为在发布时选中。这个问题中列出的答案都没有帮助我。
我的解决方案中有两个项目,以及其他参考项目。一个项目是 C# Windows Presentation Foundation (WPF)
(输出类型 Windows 应用程序),当我取消选中“签署 ClickOnce 清单”时,它在构建后保持未选中状态。
第二个项目,也是启动项目,是一个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" />
这是一个非常大的文件,其中包含多个对签名等的引用。未选中 Signing 选项的项目在其 .csproj 文件中没有此行。<Import Project>
问题
现在,我并不完全了解 .targets 文件的全部内容,并且在我知道自己想要什么之前,我不愿意去屠杀它以寻找解决方案。这个文件可能是我的问题的原因吗?如果是这样,我该如何修改它以阻止它妨碍我?如果没有,有没有人遇到过这个可以提供解决方案?
编辑:
我刚刚阅读了如何不签署 ClickOnce 清单,它再次谈到了发布。我仍然很好奇是否可以将其从我的构建中关闭。当我发布应用程序时,我对签署应用程序没有任何疑虑,但我更愿意在不发生默认情况下构建它。