Tag: clickonce

在签署EXE时,“文件具有与清单中指定的计算哈希值不同”错误

我的ClickOnce安装失败并显示错误: File,WindowsFormsProject.exe具有与manifest中指定的不同的计算哈希值。 我使用MSBuild生成ClickOnce部署包。 构建脚本中的相关行: WindowsFormsProject.csproj具有签署可执行文件的Post-Build步骤,如下所示: signtool sign /a $(ProjectDir)\obj\$(PlatformName)\$(ConfigurationName)\$(TargetFileName) 麻烦的是,当我查看构建日志时,我发现清单是在Post-Build事件执行之前生成的。 因此,哈希码不匹配也就不足为奇了。 构建日志中的相关行: _CopyManifestFiles: WindowsFormsProject – > … \ WindowsFormsProject.application … PostBuildEvent: 成功签名:… \ WindowsFormsProject.exe 所以,问题是: 在任务期间生成清单之前,有没有办法对程序集进行签名? 有没有办法在构建完成后重新生成清单(并且只显示清单),以便哈希代码再次匹配? 或者,如果你能想到问题的不同解决方案,我会很感激你的想法。

不要使用clickonce覆盖settings.settings文件

起初我在appSet配置下的app.config文件中存储了一些用户定义的设置。 这些是用户在运行时可以更改的属性。 我遇到的第一个问题是当我使用ClickOnce部署我的应用程序时,它会覆盖app.config文件并且用户丢失了他的个人设置。 然后我将属性移动到settings.settings文件(= app.config中的usersettings部分),因为我在互联网上发现,使用ClickOnce部署时不会覆盖此部分。 不,它确实.. Settings.Settings属性是: 构建动作=内容 复制到=不复制 那么如何在app.config文件或settings.settings文件中完成我的用户的个人设置。 还是有另一种方式,我做错了吗? 谢谢!

ClickOnce应用程序跳过要求更新(如果选择了skip,则跳过失败)

我更新了我的ClickOnce应用程序,然后当用户运行时,系统会询问他们是否要安装新版本。 我在一个高度控制的环境中工作。 当有更新可用时,必须安装(旧版本无法确保向后兼容数据库)。 另一种选择是如果按下跳过则运行失败(也可以正常工作)。 我需要一些方法来阻止他们运行旧版本的应用程序。

ClickOnce – 无法发布,因为项目无法构建

当我尝试发布我的(WPF,C#)应用程序时,我收到以下错误: 无法发布,因为项目无法构建。 找不到文件’obj \ x86 \ Debug \ MyAPP.exe’ 无论发布在哪里,我都会收到这些错误:发布向导,构建菜单或右键单击项目 – 发布。 首先它工作正常,但我做了以下事情: 我将计算机的日期更改为10/10/2013,我正在尝试别的东西。 我忘了这个,然后点击构建。 然后我在电脑上设置了正确的日期。 之后我得到了这些错误。 每次我单击运行Visual Studio构建项目是否有项目更改。 我也注意到,当我在2013年10月10日之后设置日期时,它可以正常工作。 我猜我正在寻找我的项目中设置此日期的一些设置。 我尝试了构建,重建,清洁解决方案。

如何防止多次启动我的应用?

我使用ClickOnce安装部署了我的C#WinForms应用程序。 一切正常(经过大量工作):),但现在我遇到了一个问题: 每当我单击“开始”菜单中的应用程序快捷方式时,都会启动一个新实例。 我需要避免这种情况。 我该怎么做才能防止多次发布?

点击一次更新后重启WPF应用程序(启动新版本)

如何使用click-once更新WPF应用程序,我需要启动新版本!

ClickOnce文件关联

我有一个控制台应用程序,我正在使用ClickOnce进行部署。 用户安装程序后,将设置关联,但关联的程序是安装程序(ClickOnce应用程序部署支持库),而不是实际程序。 如何将关联作为实际程序而不是安装程序? 我已经从下面的app.manifest中包含了fileAssociation节点。 如果您对此有任何提示,请与我们联系。 谢谢。 在Windows XP,Vista,Windows 7等3台不同的计算机上进行了测试。信任级别是完全信任的。 自动更新设置为启动预启动。

序列化assembly。 是否需要?

我有一个.net 2.0 c#ClickOnce应用程序,它通过Web服务连接到它的数据。 我被告知可能加速应用程序的一种方法是事先生成序列化程序集。 我在这方面有几个问题。 是否生成序列化程序集的默认设置是Auto。 VS2005使用什么标准来决定是否生成序列化程序集? 看起来它不会在Debug配置下生成,但它在Release配置下生成,但我无法确定并且无法在任何地方获取信息。 序列化程序集实际上是否改善了应用程序的启动? 具体来说它有什么改进? 我真的需要序列化程序集吗?

Clickonce完全信任应用程序更新失败,在Windows 8上出现TrustNotGrantedException

我们在C#中有一个winforms clickonce应用程序,该应用程序被授予完全信任并使用有效证书进行签名。 应用程序运行正常并在Windows XP,Windows 7上正确更新。但是,在Windows 8计算机上,它无法更新。 应用程序运行正常。 但是,升级到更高版本的第一个更新请求失败,出现: System.Deployment.Application.TrustNotGrantedException 调用ApplicationDeployment::CheckForDetailedUpdate()失败后代码失败。 想知道为什么会发生这种情况,因为完全相同的代码在所有以前版本的Windows上运行正常。 任何帮助将不胜感激。 以下是相关的堆栈跟踪: System.Deployment.Application.TrustNotGrantedException: User has refused to grant required permissions to the application. at System.Deployment.Application.ApplicationTrust.RequestTrust(SubscriptionState subState, Boolean isShellVisible, Boolean isUpdate, ActivationContext actCtx, TrustManagerContext tmc) at System.Deployment.Application.DeploymentManager.DetermineTrustCore(Boolean blocking, TrustParams tp) at System.Deployment.Application.DeploymentManager.DetermineTrust(TrustParams trustParams) at System.Deployment.Application.ApplicationDeployment.CheckForDetailedUpdate(Boolean persistUpdateCheckResult) at System.Deployment.Application.ApplicationDeployment.CheckForDetailedUpdate()

如何续订过期的ClickOnce证书?

我需要对一年多未触及的ClickOnce应用程序进行一些更改,因此证书已过期。 我已经读过,使用新证书发布会使应用程序失败,因为它将使用不同的密钥进行签名。 因此,我认为我需要使用相同的证书,但不知道如何更新它。