最終完美解決方法:經過多次波折,終於找到無法正常安裝.net3.5的原因了,是因為已刪除的用戶還有注冊表殘留導致的,而且這個問題還會影響一個win10更新的安裝,導致每天更新失敗,撤銷更新。。。
詳見《win10無法安裝.net 3.5 錯誤(0x80070003)有誰碰到過?》如下為節選部分以防鏈接失效:
解決方案:
注冊表殘留問題
如果你的電腦創建過多個賬戶,並且舊賬戶已刪除(計算機管理里刪除並不能刪除干凈),可能是因為注冊表殘留導致。
按Win+R打開運行,輸入Regedit回車打開注冊表編輯器,導航至以下位置:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
一定要保留S-1-5-18、S-1-5-19、S-1-5-20以及S-1-5-21-xxxx(后面的xxxx代表一串數字,每個人電腦中都不同。該項代表自己正在使用的賬戶)。
其中S-1-5-21-xxxx的某個項就是未刪除干凈的賬戶數據,可以刪除,但別把當前賬戶數據給刪除了。
另上述S-數字的組合即賬戶的sid,可用此方式查看所有有效賬戶的sid:cmd執行此句即可“wmic useraccount get name,sid”
原文:
換win10后裝好vs2010打開之前的C#項目的sln文件,提示沒有.net3.5問我是轉換呀,還是去下載等等,選擇下載,下一個項目又彈出來了。。。解決方案中一共十幾個項目,只好再選最后一項全部unload,這體驗真是無力吐槽了。
在.net下載頁面一看,那個全包的dotnetfx35.exe我以前有一個,應該是xp或win7時用的,直接找到安裝,實際好像沒用那個exe的文件而是直接啟動了win10的“功能”安裝模塊,裝了許久,提示“另一個程序正在使用此文件,進程無法訪問。(異常來自HRESULT:0x80070020)”——你倒是告訴我是哪個文件被占用了呀。。。
然后又在微軟.net下載頁面下了一個dotnetfx35setup.exe(在線安裝版)來安裝,以免是我那個exe不支持win10,誰知然並卵還是那個錯誤。
最后又在“程序和功能”中“啟用功能”里選擇.net3.5安裝,這次終於不一樣了,又換了一個什么嚴重錯誤。。。錯誤碼好像也變成了0x800FFFFF(因為當時心中一萬頭草泥馬飄過,沒專門記錯誤碼可能略有出入)。(此方式在安裝失敗后,應該是會回滾的,所以在失敗情況下推薦用前兩種方式)
期間又重啟嘗試了多次,仍然都是各種錯誤,甚至想過還是改回win7吧,最后雖然一直安裝失敗,但還是試着又打開了一次那個C#項目,vs先彈了一個.net2.0什么文件的錯誤提示,點掉之后,竟然可以正常打開.net3.5的項目了,我勒個去去!!!而且編譯也正常,估計報錯的那些都是在報.net2.0的安裝問題,但其實3.5已經安裝完成了,並且退出安裝時也沒有回滾,所以就是這個啼笑皆非的結果。。。2.0我們早已不再使用,所以雖然安裝有點問題,但3.5可以正常編碼就先這么用着吧。
總而言之,win10裝.net3.5即使報錯了也用vs打開試試吧,沒准其實已經可以了,實在不行就把我上述前兩個安裝方法都試下吧,真是累不覺愛呀!
后記:windows的歷史包袱太沉重了,但微軟還在繼續加重這個包袱,希望最后不要變成一個“災難”;我覺得就應該化繁就簡重做一個輕量級的系統來滿足多平台的需求,而老系統通過長期安全性維護的方式來滿足企業的需求,這樣才有機會和安卓、ios一較高下,並且也是在可以守住現有陣地的基礎上。