关于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)

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

...全文
270 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数字证书
卷积神经网络(CNN)是针对多维网格数据(如图像、视频)设计的深度学习架构,其结构灵感来源于生物视觉系统对信息的分层处理机制。该模型通过局部连接、参数共享、层级特征提取等策略,有效捕获数据中的空间模式。以下从结构特性、工作机制及应用维度展开说明: **1. 局部连接与卷积运算** 卷积层利用可学习的多维滤波器对输入进行扫描,每个滤波器仅作用于输入的一个有限邻域(称为感受野),通过线性加权与非线性变换提取局部特征。这种设计使网络能够聚焦于相邻像素间的关联性,从而识别如边缘走向、色彩渐变等基础视觉模式。 **2. 参数共享机制** 同一卷积核在输入数据的整个空间范围内保持参数不变,大幅降低模型复杂度。这种设计赋予模型对平移变换的适应性:无论目标特征出现在图像的任何区域,均可由相同核函数检测,体现了特征位置无关性的建模思想。 **3. 特征降维与空间鲁棒性** 池化层通过对局部区域进行聚合运算(如取最大值或均值)实现特征降维,在保留显著特征的同时提升模型对微小形变的容忍度。这种操作既减少了计算负荷,又增强了特征的几何不变性。 **4. 层级特征抽象体系** 深度CNN通过堆叠多个卷积-池化层构建特征提取金字塔。浅层网络捕获点线面等基础模式,中层网络组合形成纹理部件,深层网络则合成具有语义意义的对象轮廓。这种逐级递进的特征表达机制实现了从像素级信息到概念化表示的自动演进。 **5. 非线性扩展与泛化控制** 通过激活函数(如ReLU及其变体)引入非线性变换,使网络能够拟合复杂决策曲面。为防止过拟合,常采用权重归一化、随机神经元失活等技术约束模型容量,提升在未知数据上的表现稳定性。 **6. 典型应用场景** - 视觉内容分类:对图像中的主体进行类别判定 - 实例定位与识别:在复杂场景中标定特定目标的边界框及类别 - 像素级语义解析:对图像每个像素点进行语义标注 - 生物特征认证:基于面部特征的个体身份鉴别 - 医学图像判读:辅助病灶定位与病理分析 - 结构化文本处理:与循环神经网络结合处理序列标注任务 **7. 技术演进脉络** 早期理论雏形形成于1980年代,随着并行计算设备的发展与大规模标注数据的出现,先后涌现出LeNet、AlexNet、VGG、ResNet等里程碑式架构。现代研究聚焦于注意力分配、跨层连接、卷积分解等方向,持续推动模型性能边界。 卷积神经网络通过其特有的空间特征提取范式,建立了从原始信号到高级语义表达的映射通路,已成为处理几何结构数据的标准框架,在工业界与学术界均展现出重要价值。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!

17,748

社区成员

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

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