Ошибка установки ClickOnce в XP или Windows Server 2003, если имя пользователя содержит точки - PullRequest
2 голосов
/ 07 сентября 2011

У меня есть установка на основе ClickOnce (для приложения, написанного на C # /. NET 2.0).Эта установка работает гладко, за исключением (странно!) Для пользователей, которые имеют точки (".") В имени пользователя, например, "almog \ miki.test".Мне потребовалось много времени, чтобы понять причину сбоя установки.Кроме того, моя установка также отлично работает под Windows 7 и Windows Server 2008 для этих «точечных» пользователей!Проблема возникает только в Windows XP и Windows Server 2003!

Для таких «проблемных» пользователей установка не удалась с помощью кнопки «Подробности ...», и я прикрепляю ниже отображаемый журнал ошибок.Может кто-то видел эту проблему, или знает, что что-то может помочь, или просто есть идеи о том, что я мог бы попытаться исправить ситуацию.К сожалению, мои клиенты не соглашаются ни переходить на Windows 7, ни изменять имена этих пользователей, и я их понимаю.Многочисленные попытки поиска в Google не увенчались успехом :( Пожалуйста, помогите!

Вот журнал ошибок ...

PLATFORM VERSION INFO
    Windows             : 5.2.3790.131072 (Win32NT)
    Common Language Runtime     : 2.0.50727.3623
    System.Deployment.dll       : 2.0.50727.3053 (netfxsp.050727-3000)
    mscorwks.dll            : 2.0.50727.3623 (GDR.050727-3600)
    dfdll.dll           : 2.0.50727.3053 (netfxsp.050727-3000)
    dfshim.dll          : 4.0.31106.0 (Main.031106-0000)

SOURCES
    Deployment url          : file://sunny/NextSharpErp/deploy/NextExplorer.application
    Application url         : file://sunny/NextSharpErp/deploy/REL.1.0.11223.13006/NextExplorer.exe.manifest

IDENTITIES
    Deployment Identity     : NextExplorer.app, Version=1.0.11223.13006, Culture=neutral, PublicKeyToken=287349dda24b871e, processorArchitecture=msil
    Application Identity        : NextExplorer.exe, Version=2011.8.10.10, Culture=neutral, PublicKeyToken=287349dda24b871e, processorArchitecture=msil, type=win32

APPLICATION SUMMARY
    * Installable application.

ERROR SUMMARY
    Below is a summary of the errors, details of these errors are listed later in the log.
    * Activation of \\sunny\NextSharpErp\deploy\NextExplorer.application resulted in exception. Following failure messages were detected:
        + Transaction did not complete. The file name may be too long. Shorten the file name, and try again.
        + The system cannot find the path specified. (Exception from HRESULT: 0x80070003)

COMPONENT STORE TRANSACTION FAILURE SUMMARY
    * Transaction at [11/08/2011 13:59:50]
        - Staging of a component file (Languages\VbSnippets\fundamentals\datatypes\ConvertBetweenSimplifiedChineseandTraditionalChineseCharacters.snippet) did not succeed.
        - Staging of a component file (Languages\Dynamic\Lexers\ActiproSoftware.Perl.xml) did not succeed.
        - Staging of a component file (Languages\VbSnippets\common code patterns\properties and procedures\FuncWithVarParams.snippet) did not succeed.
        - Staging of a component file (Languages\VbSnippets\common code patterns\types\GetTheStringValueOfAnEnumerationValue.snippet) did not succeed.
        - Staging of a component file (Languages\VbSnippets\common code patterns\types\DefineAnEnumeration.snippet) did not succeed.
        - Staging of a component file (Languages\VbSnippets\fundamentals\datatypes\ConvertaNumbertoaHexaDecimalString.snippet) did not succeed.
        - Staging of a component file (Languages\VbSnippets\fundamentals\math\CalculateTangentOfAnAngle.snippet) did not succeed.
        - Staging of a component file (Languages\VbSnippets\fundamentals\filesystem\DeleteFiles.snippet) did not succeed.

...............[I skip many other files]......................

        - Staging of a component (NextExplorer.resources.dll.genman) did not succeed.
        - Staging of a component file (NextExplorer.resources.dll) did not succeed.
        - Staging of a component (ActiproSoftware.SyntaxEditor.Net20.dll.genman) did not succeed.
        - Staging of a component file (ActiproSoftware.SyntaxEditor.Net20.dll) did not succeed.
        - Staging of a component (ComponentFactory.Krypton.Navigator.dll.genman) did not succeed.
        - Staging of a component file (ComponentFactory.Krypton.Navigator.dll) did not succeed.
        - Installation of deployment (file://sunny/NextSharpErp/deploy/NextExplorer.application#NextExplorer.app, Version=1.0.11223.13006, Culture=neutral, PublicKeyToken=287349dda24b871e, processorArchitecture=msil) did not succeed.
        - Setting one or more of the deployment metadata did not succeed.

WARNINGS
    There were no warnings during this operation.

OPERATION PROGRESS STATUS
    * [11/08/2011 13:59:15] : Activation of \\sunny\NextSharpErp\deploy\NextExplorer.application has started.
    * [11/08/2011 13:59:15] : Processing of deployment manifest has successfully completed.
    * [11/08/2011 13:59:15] : Installation of the application has started.
    * [11/08/2011 13:59:16] : Processing of application manifest has successfully completed.
    * [11/08/2011 13:59:19] : Request of trust and detection of platform is complete.
    * [11/08/2011 13:59:45] : Downloading of subscription dependencies is complete.
    * [11/08/2011 13:59:45] : Commit of the downloaded application has started.

ERROR DETAILS
    Following errors were detected during this operation.
    * [11/08/2011 13:59:51] System.Deployment.Application.DeploymentException (ComponentStore)
        - Transaction did not complete. The file name may be too long. Shorten the file name, and try again.
        - Source: System.Deployment
        - Stack trace:
            at System.Deployment.Application.ComponentStore.SubmitStoreTransaction(StoreTransactionContext storeTxn, SubscriptionState subState)
            at System.Deployment.Application.ComponentStore.SubmitStoreTransactionCheckQuota(StoreTransactionContext storeTxn, SubscriptionState subState)
            at System.Deployment.Application.ComponentStore.CommitApplication(SubscriptionState subState, CommitApplicationParams commitParams)
            at System.Deployment.Application.SubscriptionStore.CommitApplication(SubscriptionState& subState, CommitApplicationParams commitParams)
            at System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState& subState, ActivationDescription actDesc)
            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)
        --- Inner Exception ---
        System.IO.DirectoryNotFoundException
        - The system cannot find the path specified. (Exception from HRESULT: 0x80070003)
        - Source: System.Deployment
        - Stack trace:
            at System.Deployment.Internal.Isolation.IStore.Transact(IntPtr cOperation, StoreTransactionOperation[] rgOperations, UInt32[] rgDispositions, Int32[] rgResults)
            at System.Deployment.Internal.Isolation.Store.Transact(StoreTransactionOperation[] operations, UInt32[] rgDispositions, Int32[] rgResults)
            at System.Deployment.Application.ComponentStore.SubmitStoreTransaction(StoreTransactionContext storeTxn, SubscriptionState subState)

COMPONENT STORE TRANSACTION DETAILS
    * Transaction at [11/08/2011 13:59:50]
        + System.Deployment.Internal.Isolation.StoreOperationStageComponent
            - Status: Installed
            - HRESULT: 0x0
            - Manifest: 177GGDTG.85L.application
        + System.Deployment.Internal.Isolation.StoreOperationSetDeploymentMetadata
            - Status: Set
            - HRESULT: 0x0
        + System.Deployment.Internal.Isolation.StoreOperationStageComponent
            - Status: Installed
            - HRESULT: 0x0
            - Manifest: NextExplorer.exe.manifest
        + System.Deployment.Internal.Isolation.StoreOperationStageComponentFile
            - Status: Installed
            - HRESULT: 0x0
            - File: Languages\VbSnippets\common code patterns\exception handling\DefineAnExceptionClass.snippet
        + System.Deployment.Internal.Isolation.StoreOperationStageComponentFile
            - Status: Installed
            - HRESULT: 0x0
            - File: Languages\VbSnippets\common code patterns\exception handling\UsingStatement.snippet
        + System.Deployment.Internal.Isolation.StoreOperationStageComponentFile
            - Status: Installed
            - HRESULT: 0x0
            - File: Languages\VbSnippets\fundamentals\collections and arrays\LocateanElementinanArray.snippet

..........................[I skip many other such blocks with status 'Installed']...............................................

        + System.Deployment.Internal.Isolation.StoreOperationStageComponentFile
            - Status: Installed
            - HRESULT: 0x0
            - File: Languages\Dynamic\Lexers\ActiproSoftware.MSIL.xml
        + System.Deployment.Internal.Isolation.StoreOperationStageComponentFile
            - Status: Installed
            - HRESULT: 0x0
            - File: Languages\VbSnippets\application\ActivateaRunningApplicationByProcess.snippet
        + System.Deployment.Internal.Isolation.StoreOperationStageComponentFile
            - Status: Failed
            - HRESULT: 0x80070003
            - File: Languages\VbSnippets\fundamentals\datatypes\ConvertBetweenSimplifiedChineseandTraditionalChineseCharacters.snippet
        + System.Deployment.Internal.Isolation.StoreOperationStageComponentFile
            - Status: Failed
            - HRESULT: 0x1
            - File: Languages\Dynamic\Lexers\ActiproSoftware.Perl.xml
        + System.Deployment.Internal.Isolation.StoreOperationStageComponentFile
            - Status: Failed
            - HRESULT: 0x1
            - File: Languages\VbSnippets\common code patterns\properties and procedures\FuncWithVarParams.snippet
        + System.Deployment.Internal.Isolation.StoreOperationStageComponentFile
            - Status: Failed
            - HRESULT: 0x1
            - File: Languages\VbSnippets\common code patterns\types\GetTheStringValueOfAnEnumerationValue.snippet

.........................[I skip many other blocks like these with status 'Failed']..................................................

        + System.Deployment.Internal.Isolation.StoreOperationStageComponent
            - Status: Failed
            - HRESULT: 0x1
            - Manifest: ComponentFactory.Krypton.Navigator.dll.genman
        + System.Deployment.Internal.Isolation.StoreOperationStageComponentFile
            - Status: Failed
            - HRESULT: 0x1
            - File: ComponentFactory.Krypton.Navigator.dll
        + System.Deployment.Internal.Isolation.StoreOperationInstallDeployment
            - Status: Failed
            - HRESULT: 0x1
            - AppId: file://sunny/NextSharpErp/deploy/NextExplorer.application#NextExplorer.app, Version=1.0.11223.13006, Culture=neutral, PublicKeyToken=287349dda24b871e, processorArchitecture=msil
        + System.Deployment.Internal.Isolation.StoreOperationSetDeploymentMetadata
            - Status: Failed
            - HRESULT: 0x1
        + System.Deployment.Internal.Isolation.StoreTransactionOperationType (27)
            - HRESULT: 0x1

1 Ответ

0 голосов
/ 08 сентября 2011

Я сталкивался с этой проблемой раньше. Проблема в том, что папка пользователя содержит точку (.), И некоторые функции установщика не любят, когда точка находится в пути.

Существует два возможных решения: одно немного рискованно, а другое, скорее всего, будет бесполезным. Извиняюсь за пессимизм.

Решение № 1

Пользователь должен удалить точку из папки своего профиля. В этом пошаговом руководстве описан процесс, но он включает в себя наличие доступа администратора к компьютеру и взлом реестра. Первое требование может быть невозможным, а второе часто является плохой практикой и не рекомендуется, если его можно избежать.

Кроме того, изменение папки профиля пользователя может быть опасным, поскольку другие файлы и приложения могут полагаться на фиксированный путь к папке или файлу в точечном каталоге пользователя. Исправление вашей проблемы может создать больше для пользователя с другими приложениями. Это не оптимальное решение.

Решение № 2

Следующее решение на самом деле не так уж и много. Это было бы для сообщения об ошибке с MS Connect . Тщательно документируйте проблему и убедитесь, что вы указали код ошибки 0x80070003, а также трижды проверьте, можете ли вы воспроизвести эту проблему, чтобы дать очень конкретные инструкции по репликации этой ошибки.

Кто-то из Microsoft ответит, но есть вероятность, что они скажут, что он ведет себя так по замыслу. Однако вам может повезти, и вы получите исправление из этого.

Я рекомендую пока принять эту ошибку и опубликовать отчет об ошибке в MS Connect. Обновите ваш вопрос, указав ссылку на тикет MS Connect, и я (и, надеюсь, другие) проголосует за запрос, чтобы, надеюсь, он был исправлен.

Как я уже говорил, я видел эту проблему раньше. Однако я вспоминаю, что в моем случае точка в каталоге не была частью имени пользователя, поэтому я смог переименовать каталог и вуаля! Проблема была исправлена. Это особый случай, когда мы не должны переименовывать папку пользователя.

Удачи, и я буду продолжать смотреть этот пост.

...