091023 T GIX4 项目中的 智能部署 和 智能客户端

简介:

先说一下ClickOnce的使用方法:
先给一个要发布的工程设置安全和签名。然后发布到iis中。当用户访问该iis目录下的.application文件时,就会自动安装整个应用程序。

再说一下我们目前的应用程序。相对还是比较复杂的,分为框架部分和特定应用程序部分。其中的框架部分,以后会作为开源框架发布。由于是AutoUI,框架部分就包含了生成最后客户端运行的exe的工程。而特定的应用程序只需要实现自己的类库和模块(Module)。最后发布的时候,需要把生成好的类库和Module放到exe文件所在目录的子目录Library和Module当中,框架会自动寻找这两个目录中的文件,进行加载。

这时候,我们的发布就比较麻烦了。
先要把框架直接发布好,这样其它团队就可以直接使用。但是其中包括安全和签名,和所有文件hash值。这时候,如果其它使用这个框架的团队进行发布时,必须要把他们自己的类库和Module放入到已经打包好的程序当中。然后使用MS一个开源的工具(ManifestManagerUtility.exe)对已经生成好的.application文件进行修改,把类库和Module添加到这个文件中,这样,客户端在装程序的时候,才会也把这些文件一起安装到客户端中。这时,这个软件也会再次对每个文件生成hash值。
但是,这样直接加了以后,有两个问题。
一是他们在类库和module发布更新的版本时,为了避免再次打开那个MS的软件进行手工编辑,应该实现自动化更新application文件。
二是新的文件生成的hash值,肯定不会和原有的hash值相同。

所以,我只有自己把MS的那个软件的源码给研究完,然后自己写了一个控制台程序实现以上功能。
其中,遇到一个MS比较缺陷的设计,害得我是查了好半天!当直接复制MS程序中的代码:
Manifest.ResolveFiles();
Manifest.UpdateFileInfo();
来进行更新时,老是不能把文件的hash值也一并更新。其原因在于,UpdateFileInfo更新hash值时,是使用每个AssemblyReference对象的ResolvedPath来计算hash,而在ResolveFiles方法里面,这个属性值的计算是调用SourcePath和Environment.CurrentDirectory计算出来的。此时,这个Environment.CurrentDirectory文件夹路径是我的这个控制台程序所在路径,所以并不能正确计算出.application所在文件夹中的文件的路径。找不到文件,自然hash值就更新失败了。

解决方案:
一:在更新前,计算出各个AssemblyReference的SourcePath值,然后再调用ResolveFiles方法。(我使用的是此法,因为MS软件中有现成的方法。)
二:使用ResolveFiles的重载ResolveFiles(string[] searchPaths)指定搜索的文件夹即可。

参考:
继承层次 : ApplicationManifest : AssemblyManifest : Manifest。


本文转自BloodyAngel博客园博客,原文链接:http://www.cnblogs.com/zgynhqf/archive/2009/11/21/1607735.html,如需转载请自行联系原作者

相关文章
|
5月前
|
人工智能 边缘计算 监控
【开源视频联动物联网平台】视频AI智能分析部署方式
【开源视频联动物联网平台】视频AI智能分析部署方式
322 3
|
5月前
|
机器学习/深度学习 TensorFlow API
ensorFlow 智能移动项目:6~10(3)
ensorFlow 智能移动项目:6~10(3)
60 0
|
5月前
|
机器学习/深度学习 算法 TensorFlow
ensorFlow 智能移动项目:6~10(5)
ensorFlow 智能移动项目:6~10(5)
36 0
|
5月前
|
机器学习/深度学习 API 网络安全
视觉智能平台常见问题之服务部署在pdd的服务器上调用会报错如何解决
视觉智能平台是利用机器学习和图像处理技术,提供图像识别、视频分析等智能视觉服务的平台;本合集针对该平台在使用中遇到的常见问题进行了收集和解答,以帮助开发者和企业用户在整合和部署视觉智能解决方案时,能够更快地定位问题并找到有效的解决策略。
225 4
|
5月前
|
人工智能 搜索推荐 机器人
AI Agent涌向移动终端,手机智能体开启跨端跨应用业务连接新场景
AI Agent涌向移动终端,开启跨端跨应用业务连接新场景,手机智能体将成企业AIGC应用新标配。
126 0
|
5月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
ensorFlow 智能移动项目:6~10(4)
ensorFlow 智能移动项目:6~10(4)
48 0
|
5月前
|
人工智能 TensorFlow 算法框架/工具
ensorFlow 智能移动项目:6~10(6)
ensorFlow 智能移动项目:6~10(6)
30 0
|
5月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
ensorFlow 智能移动项目:6~10(1)
ensorFlow 智能移动项目:6~10(1)
53 0
|
5月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
ensorFlow 智能移动项目:6~10(2)
ensorFlow 智能移动项目:6~10(2)
46 0
下一篇
无影云桌面