У одного из наших пользователей есть очень серьезная проблема с 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 получает каждый раз при загрузке)
Я опубликовал приложение helloworld в .NET 3.5 и .NET 4.0 и скопировал всю папку \publish на свою машину. Это также не устанавливалось, давая ту же ошибку. Наконец, я пошел в реестр, чтобы попытаться добавить расширенные протоколирования на RobinDotNet и понял, что HKCU\Software\Classes\Software полностью отсутствует. После нескольких потоков я пошел и переименовал UsrClass.dat. Однако после выхода из системы и входа в систему это не было восстановлено. Я подозреваю, что это может быть проблема. Любые мысли о том, как заставить ClickOnce работать снова?
Это достаточно новая установка Windows 7 Professional.
Обновить Вот еще один ключ. Мы можем переименовать UsrClass.dat на что угодно или удалить его без какой-либо жалобы из Windows, поэтому он не загружается. На моей машине он жалуется, что он используется.