.Net应用程序部署:仅在我的计算机上运行
本文关键字:我的 计算机 运行 应用程序 部署 Net | 更新日期: 2023-09-27 18:21:04
我遇到了另一个部署问题。
我所拥有的:一个小型的Windows窗体应用程序,它可以查看浏览器缓存并从中复制图像文件。
问题:该应用程序在我的机器上运行良好,但每当我试图在别人的机器上执行它时,我都会收到一条错误消息("发生错误。正在退出"和Temp文件夹中的3个文件的列表。这些文件中没有太多关于问题的信息。
我尝试过不同的目标框架.Net 4.0,.Net 4.0客户端配置文件,3.5,3.5客户端配置文件-同样的问题。我尝试过OneClick部署和安装项目,只复制了*.exe文件。所有人最终都会遇到同样的问题。
在目标机器上安装了完整的.Net 4.0框架,但没有什么区别。
该应用程序正在从注册表中读取,但我不认为从HKLM读取需要管理员权限,但我还是尝试以管理员身份运行。
我试过Windows 7、XP SP3——类似的输出。
除了.Net框架之外,该项目没有任何依赖项。
有什么建议可以让我在国外机器上检查应用程序的具体情况吗??
附言:如果你想看一看,这里有源代码:http://cachecopy.codeplex.com/SourceControl/list/changesets
UPD:谢谢大家的建议,我在其他机器上安装了Visual Studio,几秒钟内就发现了问题。我试图用String.Empty作为地址打开目录。我真傻!
听起来像是。。。ProcMon。在启动应用程序的同时在计算机上运行此程序,并过滤掉除exe之外的所有内容。这将显示所有文件系统和注册表活动。如果存在权限问题,您将在结果列中看到访问被拒绝,或者如果内容丢失,您将看到未找到路径条目。
是否可能在某个时刻引用了其他机器上不存在的文件?例如"C:''MyFile"?
基本上,在应用程序或表单加载过程中,一些代码试图在没有正确错误处理的情况下对受保护或不存在的目录/文件执行文件操作。
诀窍是在进行任何文件处理之前,先弄清楚如何在应用程序中引用路径/文件名,并将它们与特定的操作系统/用户名解耦。
尝试/捕获自定义错误以帮助您精确定位所有文件系统访问代码的区域是个好主意。