.Net应用程序部署:仅在我的机器上运行

时间:2012-01-20 00:28:38

标签: c# deployment installation

我还有另一个部署问题。

我所拥有的:小型Windows窗体应用程序,它可以查看浏览器缓存并从那里复制图像文件。

问题:应用程序在我的机器上运行良好,但每当我尝试在别人的机器上运行它时,我收到一条错误消息(“发生错误。退出”和Temp文件夹中的3个文件列表。关于这些文件中的问题的信息不多。

我尝试过使用不同的目标框架.Net 4.0,.Net 4.0 Client Profile,3.5,3.5客户端配置文件 - 同样的问题。 我尝试过OneClick部署和安装项目,只需复制* .exe文件。所有人都会遇到同样的问题。

在目标机器上安装完整的.Net 4.0框架,但没有区别。

该应用程序正在从注册表中读取,但我不认为从HKLM读取需要管理员权限,但我尝试以管理员身份运行。

我尝试过Windows 7,XP SP3 - 类似的输出。

除了.Net框架之外,项目没有依赖关系。

我可以查看外国机器上应用程序究竟发生了什么的任何建议吗?

P.S。如果你想看一下,可以在这里找到源代码:http://cachecopy.codeplex.com/SourceControl/list/changesets

UPD:感谢您的建议,我在其他计算机上设置了Visual Studio,并在几秒钟内发现了问题。我试图用String.Empty作为地址打开目录。傻傻的我!

3 个答案:

答案 0 :(得分:2)

听起来像...... ProcMon的工作。在启动应用程序时在计算机上运行此操作并过滤掉除exe之外的所有内容。这将显示所有文件系统和注册表活动。如果存在权限问题,您将在结果列中看到拒绝访问,或者如果缺少某些内容,您将看到路径未找到的条目。

答案 1 :(得分:2)

在某些时候你是否引用了其他机器上不存在的文件?例如'C:\ MyFile'?

答案 2 :(得分:1)

基本上,无论是在应用程序还是表单加载过程中,某些代码都试图在受保护或不存在的目录/文件上执行文件操作,而没有正确的错误处理。

诀窍是弄清楚在执行任何文件处理之前如何在应用程序中引用路径/文件名,并将它们与特定操作系统/用户名分离。

尝试/捕获自定义错误,以帮助您精确定位所有文件系统访问代码的区域。