在针对特定用户的所有ClickOnce应用程序启动时出现此错误.这在版本升级后开始发生(但不会发生在其他人身上).
我已经尝试过随后更改版本号,添加/删除,注册表清理,清除Local Settings\Apps文件夹等...仍然没有运气.
本文指向用户配置文件损坏,但我重新创建此用户不是一个选项.有没有其他想法清理这个?
PLATFORM VERSION INFO
Windows : 5.1.2600.196608 (Win32NT)
Common Language Runtime : 2.0.50727.3082
System.Deployment.dll : 2.0.50727.3053 (netfxsp.050727-3000)
mscorwks.dll : 2.0.50727.3082 (QFE.050727-3000)
dfdll.dll : 2.0.50727.3053 (netfxsp.050727-3000)
dfshim.dll : 2.0.50727.3053 (netfxsp.050727-3000)
SOURCES
Deployment url : file:///C:/Documents%20and%20Settings/<username>/Start%20Menu/Programs/<programname>/<programname>.appref-ms%7C
ERROR SUMMARY
Below is a summary of the errors, details of these errors are listed later in the log.
* Activation of \\NDP13\C\Documents and Settings\<username>\Start Menu\Programs\<programname>\<programname>.appref-ms| resulted in exception. Following failure messages were detected:
+ Value does not fall within the expected …Run Code Online (Sandbox Code Playgroud) 我使用强名称密钥文件使用我的VSTO 4.0 word加载项对程序集进行了签名,.snk并尝试取消选中"签署ClickOnce清单",但在重建后再次出现.之后,我试图删除线的ClickOnce体现在.csproj,.pfx明显出现以后每隔重建.
有没有人知道永久删除临时ClickOnce清单的解决方案?
是否可以使用ClickOnce部署Windows服务?如果是这样,你是如何实现这一目标的?
目前,我们必须使用Deployment项目,使用ClickOnce可以大大简化安装过程.
有没有办法(hacky会这样做)允许用户返回以前版本的ClickOnce网络部署的应用程序?
我查看了文档和API,似乎没有办法.您可以有选择地选择是否要更新,但一旦更新,似乎就没有办法了.
使用ClickOnce应用程序,是否可以在创建新版本时替换当前文件或安装在其他目录中?因为我得到的错误是:
无法安装此应用程序,因为已安装具有相同标识的应用程序.要安装此应用程序,请修改此应用程序的清单版本或卸载预先存在的应用程序.
Microsoft的ClickOnce部署系统提供了一个易于使用的文件关联管理器,该管理器内置于Visual Studio部署过程中.开发人员最多可以添加8个文件关联,当用户运行ClickOnce安装程序时,这些关联将自动与其应用程序关联.
我想更进一步,但是:我希望允许用户在我的应用程序中安装后手动添加或删除其他文件关联.
我有两个动机来完成这个:
与传统Windows应用程序不同,ClickOnce应用程序不是通过其可执行文件直接启动的.相反,它们通过一个特殊的.appref-ms快捷方式启动,该快捷方式处理幕后的ClickOnce魔术(自动更新,在可视化目录中查找可执行文件%LOCALAPPDATA%等).
如果通过其可执行文件直接打开ClickOnce部署的应用程序,则会禁用自动更新,并且ClickOnce特定的方法将不再起作用.因此,我的用例不可能使用传统的注册表文件关联.
下图演示了Visual Studio 2010的内置ClickOnce文件关联管理器.此信息存储在应用程序的.manifest文件中,并在安装时添加到Windows注册表中.

我已经完成了对我的注册表的一些挖掘,并确定了ClickOnce安装程序创建的几个条目,以将文件类型与ClickOnce部署的应用程序相关联.
我在注册表中找到的ClickOnce文件类型关联的示例注册表项:
rundll32.exe dfshim.dll, ShOpenVerbExtension {ae74407a-1faa-4fda-9056-b178562cf98f} %1
凡{ae74407a-1faa-4fda-9056-b178562cf98f}在其他几个位置使用在注册表中相关的应用程序GUID.
我的目标是了解必须将哪些信息添加到注册表(以编程方式)以手动将文件与ClickOnce部署的应用程序相关联.
任何帮助表示赞赏!
我有一个将使用ClickOnce的WinForms应用程序.但事实证明ClickOnce不适用于我的应用程序,所以我想删除它.只有...似乎没有明显的方法来做到这一点.没有"Un-ClickOnce"按钮.有没有人知道我需要采取哪些步骤让我的应用程序像ClickOnce集成之前一样?
(我知道我可以创建一个新项目并将内容导入其中,但是这样做似乎很愚蠢,所以我希望还有另一种方法.)
我有一个.NET应用程序,我使用ClickOnce分发,我只在线提供.如何从未安装Visual Studio的用户计算机中清除下载缓存?
我希望能够为我的应用程序提供测试ClickOnce服务器,用户可以并行运行生产版本和测试版本.这可能吗?
我首先尝试使用以下内容AssemblyInfo.cs并更改ClickOnce部署中的名称,尽管所有这些都是使用测试版本覆盖用户的生产版本.同样,它们在返回生产服务器时也是如此.
#if DEBUG
[assembly: AssemblyTitle("Product Name - Test")]
#else
[assembly: AssemblyTitle("Product Name")]
#endif
Run Code Online (Sandbox Code Playgroud)
我想我还应该澄清两个部署位置彼此不同并且在不同的服务器上.
UPDATE
我也尝试根据调试模式设置清单的GUID,但它再次无法工作(下面使用虚拟GUID).
#if DEBUG
[assembly: Guid("AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA")]
#else
[assembly: Guid("BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB")]
#endif
Run Code Online (Sandbox Code Playgroud)
两者如何区分?似乎安装程序将它们视为两个单独的程序,因为我得到了每个程序的安装确认.虽然,当我安装第二个时,"添加/删除程序"只看到后者,虽然前者仍在磁盘上,因为我以后再重新安装它,它只是简单地运行,但随后添加/删除程序切换回到以前的名字.
在试图通过ClickOnce发布我的应用程序的Foo和Foo Beta版本的同时,我设法破坏了现有的和以前工作正常的Foo 1.0.0安装(用Foo Beta 1.0.5 替换它,这不起作用)由于使用相同的GUID,程序集名称,产品名称或其他东西.
好吧,诚实的错误.为了恢复此状态,我使用Windows 7添加/删除程序卸载了Foo Beta.
我的计算机现在处于Windows 7添加/删除程序中没有Foo实例出现的状态.但是,Foo Beta仍然显示为已安装.另外,我无法重新安装Foo 1.0.0,因为它认为我的计算机上已经存在更新版本的程序(Foo Beta 1.0.5) - 而是因为更新版本而无法安装该产品已经安装'消息.
如何让我的计算机进入一个既没有安装Foo也没有安装Foo Beta的状态,那么我可以去重新安装Foo?
到目前为止,我已阅读Stack Overflow问题卸载ClickOnce客户端,如何从客户的计算机中删除ClickOnce应用程序的所有痕迹?并试过:
当我运行安装程序时,我仍然收到错误.从哪里找到我的程序的痕迹?为了将来参考,这在哪里记录?