从WinForms应用程序中删除ClickOnce

46

我有一个WinForms应用程序原本要使用ClickOnce。但是现在看来ClickOnce不能为我的应用程序工作,所以我想删除它。只是...似乎没有明显的方法可以做到这一点。没有“取消ClickOnce”按钮。有人知道我需要采取哪些步骤才能让我的应用程序恢复到ClickOnce集成之前的状态吗?

(我知道我可以创建一个新项目并将内容导入其中,但是这样做似乎很愚蠢,所以我希望还有其他方法。)


1
ClickOnce是什么让你的程序“感染”了它?你不能从应用程序中“删除”ClickOnce,你只能决定不使用它并以另一种方式部署。 - Matt Hamilton
5个回答

121

其他回答都是不正确或不够有帮助的。声称它永远不需要删除是不正确的。

我最近遇到的一个例子是当应用程序需要管理特权时。任何将管理要求嵌入清单中的尝试都将导致该应用程序甚至在解决方案中仍然存在ClickOnce时无法编译。

以下两个步骤使我关闭了ClickOnce(在Visual Studio 2010中):

在项目属性中,

  1. 签名选项卡:取消选中"对ClickOnce清单进行签名"
  2. 安全性选项卡:取消选中"启用ClickOnce安全设置"

5
谢谢。对我来说,我不想让不必要的文件进入构建,因为它们很可能会被复制到其他机器上。如果你不使用它们,那么没有这些文件会更清洁! - Josh M.
如果项目中有DLL文件(参考*如何不签署ClickOnce清单*),那么1.)怎么可能呢?在这种情况下,2.)是否启用它? - Peter Mortensen
我发现这个问题是因为我的一个Windows服务项目有一个app.publish目录,里面只有一个.exe文件。上面的说明(取消签名/ClickOnce和安全性/ClickOnce)消除了该目录。 - William T. Mallard
2
来自未来的问候。请注意,对于通过ClickOnce部署的VSTO没有“安全”选项卡。 - user585968
我将代码复制到另一台机器上时,在尝试构建时出现了“找不到SignTool.exe”的错误。显然,“ClickOnce发布工具”是Visual Studio 2015安装/修改选项中的一个复选框。ClickOnce不适用于此程序,因此有关从项目属性中删除它而不是运行Visual Studio的修改设置的信息非常有帮助。谢谢。 - eric1825

1

如果您参考位于 Debug 文件夹中的 ClickOnce 应用程序部署清单文件,请转到项目属性-> 安全性,并取消选中“启用 ClickOnce 安全设置”。

您还可以转到项目属性-> 签名并取消选中“签名 ClickOnce 清单”,但这不是必需的,因为如果您执行第一个取消选中,则没有什么需要签名的。

现在,如果您转到调试并删除 .application 文件,则在重新构建时不会再次出现。


1

我相信当你停止使用ClickOnce部署时,仅剩下publish.xml文件,它告诉您到目前为止已经部署了什么以及您所处的版本。否则,没有任何需要关注的内容,只需像在没有ClickOnce的情况下一样从bin文件夹部署即可。


1

我同意其他人的观点,没有必要“删除ClickOnce”。

但如果您真的想这么做,我记得所有ClickOnce的设置都在项目的.csproj文件中,因此请删除所有与ClickOnce相关的XML标签。(可能最容易的方法是将其与从未部署过CO的新应用程序进行比较,以查看哪些标签不存在)


0

以防有人需要帮助...

我的问题是,我有一个依赖的“类库”项目,其“签署 ClickOnce 清单”选项被勾选但禁用,因此无法取消选中。我的解决方案如下:

  • 将该项目转换为 Windows 应用程序,
  • 重新打开属性面板,
  • 从属性面板的签名选项卡中移除 ClickOnce 清单签名,
  • 将项目重新转换为“类库”。

我认为这是一个微软的 bug(在我现在使用的 VS2019 16.0.1 版本中仍然存在),但这个解决方法有效。

祝你好运!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接