C# ClickOnce安装期间FileNotFoundException,缺少HKCU\Software\Classes\Software
我们的一个用户有一个非常严重的ClickOnce问题。这是一个典型的错误: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) -
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)
但传统的解决方案都不起作用。我们尝试:
更新这里是另一条线索。我们可以将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是什么?因为如果将它设置为从其他地方安装,则将其复制到计算机将不起作用——它将在该位置查找。