繁体   English   中英

.NET应用程序部署:仅在我的计算机上运行

[英].Net application deployment: runs only on my machine

我还有另一个部署问题。

我所拥有的:小型Windows Forms应用程序,它在浏览器缓存上查找并从那里复制图像文件。

问题:该应用程序在我的计算机上运行良好,但是每当我尝试在其他人的计算机上运行该应用程序时,我都会收到一条错误消息(类似“发生错误。正在退出”以及Temp文件夹中的3个文件的列表。没有太多信息这些文件中的问题。

我尝试使用不同的目标框架.Net 4.0,.Net 4.0客户端配置文件,3.5、3.5客户端配置文件-相同的问题。 我已经尝试过OneClick部署和安装项目,只是复制* .exe文件。 所有人最终都遇到相同的问题。

在目标计算机上安装了完整的.Net 4.0框架,但没有什么区别。

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

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

除了.Net框架之外,该项目没有任何依赖项。

有什么建议可以检查外国计算机上的应用程序究竟发生了什么?

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

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

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

可能是因为您引用的文件在其他计算机上不存在吗? 例如'C:\\ MyFile'?

基本上,在您的应用程序或表单加载过程中,某些代码段试图在没有适当错误处理的情况下对受保护或不存在的目录/文件执行文件操作。

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

尝试/捕获自定义错误可以帮助您查明所有文件系统访问代码中的区域。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM