在 Windows 8 上安装 .NET 3.5 时出现错误 0x800f0922

在 Windows 8 上安装 .NET 3.5 时出现错误 0x800f0922

我尝试在 Windows 8 上安装 .NET 3.5,但一直出现错误 0x800f0922。根据我在 answers.microsoft.com 上看到的信息以及堆栈溢出我认为修复此问题最简单的方法是执行系统刷新,但这会删除我从光盘安装的所有软件。我刚刚搬家,所以我不想这么做,因为我不知道很多软件的所有安装介质实际上在哪里,所以如果可能的话,我更愿意找出问题实际发生的位置。(此外,我安装了很多软件。重新安装所有软件需要很长时间,不幸的是我没有时间。)

按需错误屏幕将我发送到KB2734782,这没什么帮助。

当我从 StackOverflow 帖子运行此 DISM 行时:

Dism.exe /online /enable-feature /featurename:NetFX3 /All /Source:C:\Windows\WinSxS /LimitAccess

我在终端上得到以下输出:

Microsoft Windows [Version 6.2.9200]
(c) 2012 Microsoft Corporation. All rights reserved.

C:\Windows\system32>Dism.exe /online /enable-feature /featurename:NetFX3 /All /Source:C:\Windows\WinSxS /LimitAccess

Deployment Image Servicing and Management tool
Version: 6.2.9200.16384

Image Version: 6.2.9200.16384

Enabling feature(s)
[==========================100.0%==========================]

Error: 0x800f0922

DISM failed. No operation was performed.
For more information, review the log file.

The DISM log file can be found at C:\Windows\Logs\DISM\dism.log

C:\Windows\system32>

顺便说一下,它会直接从 0 跳到 100%,然后在该线上停留约 5 分钟,然后出现错误线。

dism.log 在那个时候包含以下几行:(完整日志的链接位于帖子底部)

2013-07-02 00:56:58, Info                  DISM   DISM.EXE: Succesfully registered commands for the provider: Edition Manager.
2013-07-02 00:56:58, Info                  DISM   DISM Provider Store: PID=5768 TID=5780 Getting Provider DISM Package Manager - CDISMProviderStore::GetProvider
2013-07-02 00:56:58, Info                  DISM   DISM Provider Store: PID=5768 TID=5780 Provider has previously been initialized.  Returning the existing instance. - CDISMProviderStore::Internal_GetProvider
2013-07-02 00:56:58, Info                  DISM   DISM Package Manager: PID=5768 TID=5780 Processing the top level command token(enable-feature). - CPackageManagerCLIHandler::Private_ValidateCmdLine
2013-07-02 00:56:58, Info                  DISM   DISM Package Manager: PID=5768 TID=5780 Attempting to route to appropriate command handler. - CPackageManagerCLIHandler::ExecuteCmdLine
2013-07-02 00:56:58, Info                  DISM   DISM Package Manager: PID=5768 TID=5780 Routing the command... - CPackageManagerCLIHandler::ExecuteCmdLine
2013-07-02 00:56:58, Info                  DISM   DISM Package Manager: PID=5768 TID=5780 Encountered the option "featurename" with value "NetFX3" - CPackageManagerCLIHandler::Private_GetPackagesFromCommandLine
2013-07-02 00:56:58, Info                  DISM   DISM Package Manager: PID=5768 TID=5780 Encountered an unknown option "featurename" with value "NetFX3" - CPackageManagerCLIHandler::Private_GetPackagesFromCommandLine
2013-07-02 00:56:58, Info                  DISM   DISM Package Manager: PID=5768 TID=5780 Encountered the option "source" with value "C:\Windows\WinSxS" - CPackageManagerCLIHandler::Private_GetPackagesFromCommandLine
2013-07-02 00:56:58, Info                  DISM   DISM Package Manager: PID=5768 TID=5780 Encountered an unknown option "source" with value "C:\Windows\WinSxS" - CPackageManagerCLIHandler::Private_GetPackagesFromCommandLine
2013-07-02 00:56:59, Info                  DISM   DISM Package Manager: PID=5768 TID=5780 Initiating Changes on Package with values: 5, 7 - CDISMPackage::Internal_ChangePackageState
2013-07-02 00:56:59, Info                  DISM   DISM Package Manager: PID=5768 TID=5780 CBS session options=0x20100! - CDISMPackageManager::Internal_Finalize
2013-07-02 01:00:27, Info                  DISM   DISM Package Manager: PID=5768 TID=2420  Error in operation: (null) (CBS HRESULT=0x800f0922) - CCbsConUIHandler::Error
2013-07-02 01:00:27, Error                 DISM   DISM Package Manager: PID=5768 TID=5780 Failed finalizing changes. - CDISMPackageManager::Internal_Finalize(hr:0x800f0922)
2013-07-02 01:00:27, Error                 DISM   DISM Package Manager: PID=5768 TID=5780 Failed processing package changes with session options - CDISMPackageManager::ProcessChangesWithOptions(hr:0x800f0922)
2013-07-02 01:00:27, Error                 DISM   DISM Package Manager: PID=5768 TID=5780 Failed ProcessChanges. - CPackageManagerCLIHandler::Private_ProcessFeatureChange(hr:0x800f0922)
2013-07-02 01:00:27, Error                 DISM   DISM Package Manager: PID=5768 TID=5780 Failed while processing command enable-feature. - CPackageManagerCLIHandler::ExecuteCmdLine(hr:0x800f0922)
2013-07-02 01:00:27, Info                  DISM   DISM Package Manager: PID=5768 TID=5780 Further logs for online package and feature related operations can be found at %WINDIR%\logs\CBS\cbs.log - CPackageManagerCLIHandler::ExecuteCmdLine
2013-07-02 01:00:27, Error                 DISM   DISM.EXE: DISM Package Manager processed the command line but failed. HRESULT=800F0922

cbs.log 包含以下可能相关的块:

2013-07-02 00:55:06, Info                  CBS    Exec: This is a PSF Package.  Job has been saved and we are returning to client.
2013-07-02 00:55:06, Info                  CSI    0000042d@2013/7/1:23:55:06.203 CSI Transaction @0xe2f5e59500 destroyed
2013-07-02 00:55:06, Info                  CBS    Exec: DPX job state saved for one or more packages, aborting the staging and install of execution.
2013-07-02 00:55:06, Info                  CSI    0000042e@2013/7/1:23:55:06.207 CSI Transaction @0xe2f5e58480 destroyed
2013-07-02 00:55:06, Info                  CBS    Perf: Stage chain complete.
2013-07-02 00:55:06, Info                  CBS    Failed to stage execution chain. [HRESULT = 0x800f0816 - CBS_E_DPX_JOB_STATE_SAVED]
2013-07-02 00:55:06, Info                  CBS    Failed to process single phase execution. [HRESULT = 0x800f0816 - CBS_E_DPX_JOB_STATE_SAVED]
2013-07-02 00:55:06, Info                  CBS    WER: Failure is not worth reporting [HRESULT = 0x800f0816 - CBS_E_DPX_JOB_STATE_SAVED]
2013-07-02 00:55:06, Info                  CBS    Reboot mark cleared

并进一步如下:

2013-07-02 00:59:19, Info                  CSI    000004e6 Begin executing advanced installer phase 38 (0x00000026) index 253 (0x00000000000000fd) (sequence 289)
    Old component: [l:0]""
    New component: [ml:306{153},l:304{152}]"NetFx35CDF-CDF_GenericCommands, Culture=neutral, Version=6.2.9200.16384, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=x86, versionScope=NonSxS"
    Install mode: install
    Installer ID: {81a34a10-4256-436a-89d6-794b97ca407c}
    Installer name: [15]"Generic Command"
2013-07-02 00:59:19, Info                  CSI    000004e7 Performing 1 operations; 1 are not lock/unlock and follow:
  (0)  LockComponentPath (10): flags: 0 comp: {l:16 b:19fc6600b776ce01c91f0000fc07a816} pathid: {l:16 b:19fc6600b776ce01ca1f0000fc07a816} path: [l:214{107}]"\SystemRoot\WinSxS\x86_netfx35cdf-cdf_genericcommands_31bf3856ad364e35_6.2.9200.16384_none_0cec490be12fb858" pid: 7fc starttime: 130171962799582915 (0x01ce76b5e2626ec3)
2013-07-02 00:59:19, Info                  CSI    000004e8 Performing 1 operations; 1 are not lock/unlock and follow:
  (0)  LockComponentPath (10): flags: 0 comp: {l:16 b:27236700b776ce01cb1f0000fc07a816} pathid: {l:16 b:27236700b776ce01cc1f0000fc07a816} path: [l:210{105}]"\SystemRoot\WinSxS\x86_netfx35cdf-csd_cdf_installer_31bf3856ad364e35_6.2.9200.16384_none_55072425fd5c3716" pid: 7fc starttime: 130171962799582915 (0x01ce76b5e2626ec3)
2013-07-02 00:59:19, Info                  CSI    000004e9 Calling generic command executable (sequence 1): [122]"C:\Windows\WinSxS\x86_netfx35cdf-csd_cdf_installer_31bf3856ad364e35_6.2.9200.16384_none_55072425fd5c3716\WFServicesReg.exe"
    CmdLine: [139]""C:\Windows\WinSxS\x86_netfx35cdf-csd_cdf_installer_31bf3856ad364e35_6.2.9200.16384_none_55072425fd5c3716\WFServicesReg.exe" /c /b /v /m /i"
2013-07-02 00:59:20, Info                  CSI    000004ea Performing 1 operations; 1 are not lock/unlock and follow:
  (0)  LockComponentPath (10): flags: 0 comp: {l:16 b:bd790401b776ce01cd1f0000fc07a816} pathid: {l:16 b:bd790401b776ce01ce1f0000fc07a816} path: [l:234{117}]"\SystemRoot\WinSxS\x86_microsoft.windows.s..ation.badcomponents_31bf3856ad364e35_6.2.9200.16384_none_353ccb4c94858655" pid: 7fc starttime: 130171962799582915 (0x01ce76b5e2626ec3)
2013-07-02 00:59:20, Info                  CSI    000004eb Creating NT transaction (seq 27), objectname [6]"(null)"
2013-07-02 00:59:20, Info                  CSI    000004ec Created NT transaction (seq 27) result 0x00000000, handle @0x24b8
2013-07-02 00:59:20, Info                  CSI    000004ed@2013/7/1:23:59:20.933 Beginning NT transaction commit...
2013-07-02 00:59:22, Info                  CSI    000004ee@2013/7/1:23:59:22.065 CSI    perf trace:
CSIPERF:TXCOMMIT;1387723
2013-07-02 00:59:22, Error                 CSI    000004ef (F) Done with generic command 1; CreateProcess returned 0, CPAW returned S_OK
    Process exit code 255 (0x000000ff) resulted in success? FALSE
    Process output: [l:28479 [4096]"DDSet_Entry: WFServicesReg.exe
DDSet_Status: CFxInstaller::CopyConfigFilesToTemp is64bit=0
DDSet_Status: CFileHelper::CopyConfigFilesToTempLocation
DDSet_Status: CFxInstaller::SetupBaseComponents isInstall=1
DDSet_Status: CFxInstaller::SetupBaseComponents Calling SetupExtensions. isInstall=1

(0x000000FF ——扩展属性不一致。??)

再往下一点:

2013-07-02 00:59:22, Error      [0x018007] CSI    000004f0 (F) Failed execution of queue item Installer: Generic Command ({81a34a10-4256-436a-89d6-794b97ca407c}) with HRESULT HRESULT_FROM_WIN32(14109).  Failure will not be ignored: A rollback will be initiated after all the operations in the installer queue are completed; installer is reliable (2)[gle=0x80004005]
[...snip...]
2013-07-02 00:59:22, Info                  CBS    Not able to add pending.xml.bad to Windows Error Report. [HRESULT = 0x80070002 - ERROR_FILE_NOT_FOUND]
2013-07-02 00:59:28, Info                  CSI    000004f1@2013/7/1:23:59:28.467 CSI Advanced installer perf trace:
CSIPERF:AIDONE;{81a34a10-4256-436a-89d6-794b97ca407c};NetFx35CDF-CDF_GenericCommands, Version = 6.2.9200.16384, pA = PROCESSOR_ARCHITECTURE_INTEL (0), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral;10609242us
2013-07-02 00:59:28, Info                  CSI    000004f2 End executing advanced installer (sequence 289)
    Completion status: HRESULT_FROM_WIN32(ERROR_ADVANCED_INSTALLER_FAILED) 
[...snip...]
2013-07-02 01:00:26, Info                  CBS    Exec: Cancelled pending transactions after rollback. [HRESULT = 0x00000000 - S_OK]
2013-07-02 01:00:26, Error                 CBS    Exec: An error occurred while committing the transaction, the transaction could not be rolled back. [HRESULT = 0x800f0922 - CBS_E_INSTALLERS_FAILED]

完整的 DISM 和 CBS 日志位于http://ben.mu/files/dotnet35_dism_cbs.zip因为 CBS 日志未压缩后大小接近 167MB。oo dism.log 给出了错误发生的时间范围--00:56:20 到 01:00:22。

有人知道导致安装失败的真正原因吗?如果知道,我该如何修复?请不要只说“刷新操作系统”。:)

答案1

您的源参数错误。文件已从 C:\Windows\WinSxS 中删除。您必须指向已安装的 ISO/DVDdrive/USB 拇指驱动器上的 SxS 文件夹:

Dism.exe /online /enable-feature /featurename:NetFX3 /All /Source:DRIVELETTER:\sources\SxS /LimitAccess

在 Windows 8 上安装 .NET Framework 3.5

http://msdn.microsoft.com/en-us/library/hh506443.aspx

答案2

我可以确认如下行为。

在使用 WSUS 的域中,通过控制面板添加功能“.NET Framework 3.5(包括 .NET 2.0 和 3.0)”失败。

以管理员身份针对原始安装介质运行以下命令也会失败安装语言包时,在我的情况下是在德语安装中使用英语。

Dism /online /enable-feature /featurename:NetFx3 /All /Source:x:\sources\sxs /LimitAccess

这里的错误和楼主提到的一样。“未找到源”通常在 65% 左右。

另外,仅仅切换回原始语言是不够的。必须卸载已安装的语言包并重新启动系统。

此后上述命令成功运行。

答案3

请尝试以下操作:

使用具有管理员权限的命令提示符,然后输入:

net stop wuauserv
net stop cryptSvc
net stop bits
net stop msiserver
ren c:\windows\SoftwareDistribution sd1.old
ren c:\windows\system32\catroot2 catroot.old
net start wuauserv
net start cryptSvc
net start bits
net start msiserver

完成此操作后,尝试重新安装。

相关内容