文件.复制未使用的DLL时,复制失败
本文关键字:复制 失败 未使用 文件 DLL | 更新日期: 2023-09-27 18:13:49
我已经构建了一个winforms应用程序(c#),它将获取文件路径列表,并将这些文件(从不同的VS解决方案)复制到一个新的位置(在用户指定的文件夹中),在相同的目录结构中,它们目前存在于本地文件系统上。
我使用Path类,Directory类等,一切都工作得很好…除非到达指向DLL的文件路径。
我试图复制的dll是其他解决方案的一部分,并且该解决方案当前未打开。
我已经尝试重新启动计算机以确保visual studio即使在解决方案关闭后也不会以某种方式连接到该DLL。
有问题的DLL可以通过常规的手动方式复制(即复制粘贴快捷方式)。
所以缺少在程序中创建批处理文件,并在DLL路径上运行xcopy,我不知道如何使其工作。
从我从谷歌搜索中发现的(在这种特殊情况下不是很多),File.Copy()应该工作…
任何帮助都将是美妙的,即使它是一个链接到一个重复的问题,我可能已经忽略了。
谢谢!
-错误信息是:进程不能访问文件[插入文件路径],因为它正在被另一个进程使用(路径也绝对正确)
-刚刚下载并试图用进程资源管理器搜索DLL名称。我还从命令提示符运行了类似的exe,但无济于事。它声称没有人在使用它。这就是为什么我对此完全困惑的原因。另外,我刚刚检查了权限,一切看起来都很好(即完全控制,所有者有效权限)
-它不处理打开的文件。它基本上构建正确的src和dest路径,并在这些路径上执行File.Copy()。我该如何处理打开的文件?我肯定我能弄清楚它是否开着,但如果它开着我该怎么办?
它不是在抱怨你试图复制的文件,而是在抱怨你试图用副本覆盖的文件。例如,病毒扫描程序总是对新的dll感到非常兴奋。或者它被加载到一个进程中,这是尝试实现自己的自动更新程序的典型失败模式。
您可以重命名目标文件以使复制成功。
您使用的是vista还是win7?如果是,请检查您的"用户帐户控制设置"。有时这可能会干扰。net安全选项并阻止原本可以工作的文件操作。
除了进程资源管理器,我还会使用微软的进程监视器,这样您就可以看到在故障点发生了什么,并允许您查看是否有其他东西正在访问dll。
可能的罪魁祸首是
- 您正在运行的程序,
- 您的防病毒包
- 一个病毒。
如果它抱怨的路径是目标路径,那么路径有可能太长?
另外,在使用进程资源管理器时,确保您已经启用了显示所有进程的详细信息的选项,而不仅仅是您自己的。
我刚刚也遇到了这个问题。我试着从FTP服务器复制一个。dll到本地目录(取代现有的),对于我的生命,我不能让它工作。一直给我一个"访问拒绝代码:5"错误。
然后我意识到FTP服务器上的。dll没有被标记为隐藏,而我试图替换的。dll被标记为隐藏。
一旦我改变了本地也可见。我再也没有问题了。
所以我的解决方案是:确保这两个文件都是可见的。
希望对大家有所帮助