ClickOnce安装期间的FileNotFoundException,缺少HKCU \ Software \ Classes \ Software

时间:2011-10-15 16:21:27

标签: c# clickonce

我们的一位用户在使用ClickOnce时遇到了非常严重的问题。错误是经典错误:

     Following errors were detected during this operation.  * [14/10/2011 01:40:25] System.IO.FileNotFoundException
      - The system cannot find the file specified. (Exception from HRESULT: 0x80070002)
      - Source: System.Deployment
      - Stack trace:    
at System.Deployment.Internal.Isolation.IsolationInterop.GetUserStore(UInt32 Flags, IntPtr hToken, Guid& riid)    
at System.Deployment.Internal.Isolation.IsolationInterop.GetUserStore()   
at System.Deployment.Application.ComponentStore..ctor(ComponentStoreType storeType, SubscriptionStore subStore)    
at System.Deployment.Application.SubscriptionStore..ctor(String deployPath, String tempPath, ComponentStoreType storeType)    
at System.Deployment.Application.SubscriptionStore.get_CurrentUser()    
at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)    at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)

但传统解决方案都没有奏效。我们试过了:

  1. 删除与应用程序相关的清单中的文件夹和文件
  2. 删除2.0文件夹
  3. 删除App文件夹
  4. 运行mage -cc
  5. 杀死dfsvc.exe并再试一次(每次失败时都会加载dfsvc)
  6. 我在.NET 3.5和.NET 4.0中发布了一个helloworld应用程序,并将整个\ publish文件夹复制到他的机器上。这也没有安装,给出了同样的错误。最后,我去了注册表尝试为RobinDotNet添加增强的日志记录,并意识到HKCU \ Software \ Classes \ Software完全缺失。继一些线程之后,我又重新命名为UsrClass.dat。但是,在注销并登录后,没有重建。我怀疑这可能是个问题。关于如何让ClickOnce再次运行的任何想法?

    这是一个相当新鲜的Windows 7 Professional安装。

    更新这是另一条线索。我们可以将UsrClass.dat重命名为任何内容或删除它而不受Windows的任何投诉 - 因此它没有被加载。在我的机器上,它抱怨它正在使用中。

4 个答案:

答案 0 :(得分:0)

我会说忘掉ClickOnce并将该注册表整理出来。这可能不是StackOverflow的正确主题,更像是SuperUser.com ......

反正:
1)尝试进行系统还原,看看是否可以找到存在该注册表配置单元的状态,您可能需要返回许多周。
2)尝试从您的计算机导出该注册表配置单元并将其导入客户端计算机。看看错误是否消失或是否有人抱怨不同的蜂巢 - 注册表可能已损坏,并且还有其他荨麻疹丢失......
3)如果这两个问题没有解决问题,那么你最好做一个干净的安装(它会比找出问题的确切原因更快,你可以确定一切都将被修复)
4)最后卸载任何注册表清理器或PC调整软件。众所周知,它们会导致问题,注册表损坏就是其中之一。还要检查硬件问题,硬盘驱动器可能已经开发出坏块或RAM可能有问题(运行MemTest 3次通过以确保)...

答案 1 :(得分:0)

尝试卸载它,然后重新安装!我相信它应该有用。

答案 2 :(得分:0)

尝试删除以下文件夹:

C:\Users\username\AppData\Local\Apps\2.0\

Data文件夹除外。

您也应该删除.NET Framework临时文件:

C:\WINDOWS\Microsoft.NET\Framework\<version>\Temporary ASP.NET Files

答案 3 :(得分:-1)

尝试清理注册表的工具。我从未经历过这种情况,但我认为与您的应用程序和清单无关,请检查可能导致该用户计算机出现此问题的软件或工具。