关于ClickeOnce手动部署的问题

chanQ 2008-09-04 10:34:54
ClickOnce手动部署发布出错:

在利用.net自带的清单生成工具mageUI.exe来手动生成应用程序清单和部署清单,2个清单均用.pfx签名过。
在客户端运行程序时,报了如下错误:

System.Deployment.Application.DeploymentException (SubscriptionState)
- 部署标识与预订不匹配。
- 源: System.Deployment
- 堆栈跟踪:
在 System.Deployment.Application.SubscriptionStore.CheckUpdateInManifest(SubscriptionState subState, AssemblyManifest deployment, Version currentVersion)
在 System.Deployment.Application.ApplicationActivator.PerformDeploymentUpdate(SubscriptionState subState)
在 System.Deployment.Application.ApplicationActivator.ProcessOrFollowShortcut(String shortcutFile, TempFile& deployFile)
在 System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut)
在 System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)

组件存储事务详细信息
没有可用的事务信息。

...全文
309 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuizhui 2010-04-12
  • 打赏
  • 举报
回复
将以前安装的程序 全部删除,然后在下载安装试试看行不?
chanQ 2008-09-07
  • 打赏
  • 举报
回复
没有更换过pfx证书
royal1 2008-09-06
  • 打赏
  • 举报
回复
使用 MageUI.exe 部署ClickOnce 应用程序

打开一个VS命令提示或Windows SDK命令提示,并定位到将要在其中存储ClickOnce文件的目录。

创建一个名为“bin”的子目录,将所有应用程序文件(包括可执行文件、程序集、资源和数据文件)全部复制到该目录中。

创建一个子目录,该子目录以部署的当前版本命名。如果是首次部署应用程序,则可以选择“1.0.0.0”。

将 \“bin”目录移到步骤 2 中创建的目录下。

启动图形工具 MageUI.exe。

从菜单中依次选择“文件”、“新建”和“应用程序清单”,创建一个新的应用程序清单。

在默认的“名称”选项卡中,输入此部署的名称和版本号。并为“发行者”提供一个值,在部署应用程序时该值将作为“开始”菜单中该应用程序的快捷方式链接的文件夹名。

选择“应用程序选项”选项卡并单击“将应用程序清单用于信任信息”。这将为此 ClickOnce 应用程序启用第三方署名。

选择“文件”选项卡,然后单击“应用程序目录”文本框旁边的“浏览”按钮。

选择在步骤 2 中创建的包含应用程序文件的目录,然后在文件夹选择对话框中单击“确定”。

单击“填充”按钮,向文件列表中添加所有应用程序文件。如果应用程序包含多个可执行文件,可以从“文件类型”下拉列表中选择“入口点”,将此部署的主可执行文件标记为启动应用程序。(如果应用程序只包含一个可执行文件,MageUI.exe 将为您标记该文件)。

选择“所需的权限”选项卡,然后选择需要应用程序断言的信任级别。默认级别为“完全信任”,此级别将适用于大多数应用程序。

从菜单中依次选择“文件”、“保存”,保存应用程序清单。保存时,系统会提示您对应用程序清单进行签名。

如果已将证书作为文件存储在文件系统上,请使用“作为证书文件签名”选项,然后使用省略号(“...”)按钮从文件系统中选择证书。如果证书保存在可通过您的计算机访问的证书存储区中,请选择“使用存储的证书签名”选项,再从提供的列表中选择证书。

从菜单中依次选择“文件”、“新建”和“部署清单”以创建部署清单,然后在“名称”选项卡中,提供名称和版本号(在此示例中为 1.0.0.0)。

切换到“更新”选项卡,指定此应用程序的更新频率。如果应用程序使用 ClickOnce 部署 API 自己检查更新,请清除标记为“此应用程序应检查更新”的复选框。

切换到“应用程序引用”选项卡。通过单击“选择清单”按钮,然后选择在前面的步骤中创建的应用程序清单,可以预填充此选项卡中的所有值。

选择“保存”,将部署清单保存到磁盘。保存时,系统会提示您对应用程序清单进行签名。单击“取消”保存清单但不对它进行签名。

向客户提供所有应用程序文件。

此时,客户必须使用他自己的自行生成的证书对部署清单签名。例如,如果客户为 Adventure Works 公司工作,他可以使用 MakeCert.exe 工具生成一个自签名证书。接着,使用 Pvk2pfx.exe 工具将 MakeCert.exe 生成的文件合并到可以传递给 MageUI.exe 的 PFX 文件。

makecert -r -pe -n "CN=Adventure Works" -sv MyCert.pvk MyCert.cer
pvk2pfx.exe -pvk MyCert.pvk -spc MyCert.cer -pfx MyCert.pfx

生成证书后,客户此时可以通过在 MageUI.exe 中打开部署清单并保存它来对部署清单签名。出现签名对话框后,客户选择“作为证书文件签名”选项,然后选择已经保存在磁盘上的 PFX 文件。

客户为其用户部署该应用程序。

royal1 2008-09-06
  • 打赏
  • 举报
回复
你是不是更换过.pfx数字证书
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究(Matlab代码实现)内容概要:本文详细介绍了非线性值迭代自适应动态规划(ADP)在离散时间非线性系统中的应用,重点研究了策略迭代自适应动态规划算法的设计与实现。文章通过构建数学模型,结合Matlab代码实现了对非线性系统的控制策略优化,分析了算法在不同工况下的性能表现,并探讨了其在工程实践中的可行性和有效性。研究涵盖了系统建模、控制器设计、仿真验证等关键环节,旨在为复杂非线性系统的自动化控制提供新的解决方案。; 适合人群:具备一定编程基础和控制系统理论知识的科研人员或工程师,特别是从事自动化、人工智能、智能控制等相关领域的研究人员。; 使用场景及目标:①为非线性系统的控制问题提供有效的数值求解方法;②通过Matlab编程实践加深对自适应动态规划算法的理解;③推动ADP算法在工业自动化、机器人控制、智能制造等领域的应用研究; 阅读建议:建议读者结合Matlab软件进行代码复现,深入理解算法细节,并尝试将其应用于其他类型的非线性系统中,以检验算法的普适性和鲁棒性。同时,鼓励查阅相关文献,进一步拓展对该领域前沿技术的认识。
内容概要:本文研究了基于粒子群算法(PSO)优化K-means聚类的居民用电行为分析方法,并提供了完整的Matlab代码实现。针对传统K-means算法对初始聚类中心敏感、易陷入局部最优的问题,引入粒子群算法进行优化,利用PSO的全局搜索能力来寻找更优的初始聚类中心,从而提升聚类的准确性和稳定性。研究以居民用电数据为对象,通过PSO-Kmeans方法对用户的用电模式进行分类,旨在更精确地识别不同类型的用电行为,为电力公司的精准营销、需求侧管理和个性化服务提供数据支持。文中详细阐述了算法的实现流程,并通过仿真实验验证了该方法相较于传统K-means的有效性。; 适合人群:具备一定数据分析和机器学习基础,对智能优化算法和电力系统数据分析感兴趣的科研人员、研究生及电力行业从业者。; 使用场景及目标:①应用于居民用电行为的精准分类与模式识别;②解决传统聚类算法初始值敏感和局部收敛问题,提升电力大数据分析的准确性;③为电力需求侧管理、负荷预测和制定差异化电价策略提供技术支持。; 阅读建议:此资源结合了理论算法与Matlab代码实现,建议读者在理解PSO和K-means算法基本原理的基础上,动手实践所提供的代码,通过调整参数和分析运行结果来深入掌握该混合优化算法在实际数据处理中的应用效果。

17,748

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧