我有一个ClickOnce部署的应用程序A需要第三方可执行文件B.exe。项目A中引用了B.exe。
应用程序清单包含A.exe
作为启动应用程序。 A.exe.manifest
包含对B.exe
的依赖关系。
所有二进制文件和清单以及其他所需文件都已正确部署到IIS。
首次执行部署的应用程序网络时,ClickOnce完全下载了应用程序。所有必需的文件都以这种方式显示在ClickOnce日志文件中:
[09:05:53] : Method Call : DownloadSingleFile called
[09:05:53] : DownloadQueueItem : _sourceUri = http://localhost/A/1.0.0.0/B.exe, _targetPath = C:\Users\Me\AppData\Local\Temp\Deployment\PT44L145.G7Y\6OXRRZ4O.RG4\B.exe
[09:05:53] : HttpWebRequest= Proxy.IsByPassed=True, ProxyUri=http://localhost/A/1.0.0.0/B.exe
[09:05:53] : HttpWebResponse=ResponseUri=http://localhost/A/1.0.0.0/B.exe
我不知道文件是否已正确复制到
该文件已正确复制到_targetPath
,因为文件夹删除速度太快。_targetPath
。
部署A.exe后,ClickOnce从安装目录执行(类似C:\Users\Me\AppData\Local\Apps\2.0\RZPET3XL.MDD\DP0VG7XH.MDZ\A.exe_f5309fcb4f74cdd0_0004.0003_07a7ad3d606fa838\
)
目录C:\Users\Me\AppData\Local\Apps\2.0\RZPET3XL.MDD\DP0VG7XH.MDZ\A.exe_f5309fcb4f74cdd0_0004.0003_07a7ad3d606fa838\
不包含B.exe
,因此无法启动第三方流程。但它包含B.exe.manifest
,B.exe.config
,B.cdf-ms
以及应用程序所需的所有其他文件,并包含在A.exe.manifest
中。
为什么B.exe没有复制到安装目录,我怎么能让它出现在那里?
//编辑:我使用了Process Monitor并检查了打开文件或其他奇怪的问题是否存在问题。没有。甚至没有尝试从部署目录中读取B.exe。