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

C# ClickOnce安装期间FileNotFoundException,缺少HKCU\Software\Classes\Software,c#,clickonce,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) -

我们的一个用户有一个非常严重的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)
但传统的解决方案都不起作用。我们尝试:

  • 删除清单中与应用程序相关的文件夹和文件
  • 删除2.0文件夹
  • 删除应用程序文件夹
  • 运行mage-cc
  • 杀死dfsvc.exe并重试(dfsvc每次失败时都会加载)
  • 我在.NET 3.5和.NET 4.0中发布了helloworld应用程序,并将整个\publish文件夹复制到了他的机器上。这也没有安装,给出了相同的错误。最后,我去了注册中心,试图为每个Robinotnet添加增强的日志记录,并意识到HKCU\Software\Classes\Software完全缺失了。在更多的线程之后,我将其重命名为UsrClass.dat。但是,在注销和登录之后,没有重新构建。我怀疑这可能就是问题所在。关于如何让ClickOnce再次工作有什么想法吗

    这是一个相当新鲜的Windows7专业版安装


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

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

    无论如何:
    1) 尝试系统还原,看看是否可以找到该注册表配置单元存在的状态,您可能需要返回数周。
    2) 尝试从您的计算机导出该注册表配置单元并将其导入客户端计算机。查看错误是否消失,或者它是否抱怨不同的配置单元-可能是注册表已损坏,并且缺少其他配置单元…
    3) 如果这两种方法都不能解决问题,那么您最好进行干净的安装(这比查找问题的确切原因要快,而且您可以确保所有问题都会得到解决)

    4) 最后卸载任何注册表清理器或pc调优软件。众所周知,它们会导致问题,注册表损坏就是其中之一。还要检查硬件问题,HDD可能出现坏块或RAM可能出现故障(请运行MemTest 3次以上以确保).

    尝试卸载它,然后重新安装!我确信它应该能工作。

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

    尝试删除以下文件夹:

    C:\Users\username\AppData\Local\Apps\2.0\
    
    除了
    数据
    文件夹

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

    C:\WINDOWS\Microsoft.NET\Framework\<version>\Temporary ASP.NET Files
    
    C:\WINDOWS\Microsoft.NET\Framework\\ASP.NET临时文件
    
    你说你在.NET 3.5和.NET 4.0中发布了应用程序,并将\publish文件夹复制到他的机器上,这是什么意思?您的应用程序的安装URL是什么?因为如果将它设置为从其他地方安装,则将其复制到计算机将不起作用——它将在该位置查找。