2012年6月18日 星期一

VS2008 SP1製作安裝程序離線安裝.Net Framework3.5


這兩天都在弄一個 Windows Setup 專案,希望弄得盡善盡美,直到剛剛終於大功告成,但當我想將 .Net Framework 3.5 SP1 的安裝檔也加入到我的 Setup 專案時(如下圖),卻發現專案無法編譯。
Visual Studio 2008 SP1 : Prerequisites
錯誤訊息如下:
The install location for prerequisites has not been set to 『component vendor's web site' and the file 『DotNetFX35SP1/dotNetMSP/x86/NetFX3.0-KB936705-v6000-x86_RTM_en.msu' in item 『.NET Framework 3.5 SP1′ can not be located on disk. See Help for more information.
解決的方式如下:
  1. 先取得 .NET Framework 3.5 Service Pack 1 (Full Package) ( 231 MB )
  2. 再根據 Visual Studio 2008 SP1 readme 的 2.3.1. General Issues 章節進行修正即可!
由於中文版的 Visual Studio 2008 SP1 讀我檔案 文件品質有問題,照著做很容易做錯,因此修正的流程補充說明如下:
  1. 先找到 [Program Files]/Microsoft SDKs/Windows/v6.0A/Bootstrapper/Packages/DotNetFX35SP1 目錄,若是 x64 架構 [Program Files] 請替換成 C:/ProgramFiles(x86)
  2. 用「記事本」開啟該目錄下的 Product.xml 文件
  3. 將以下片段插入到 <PackageFiles CopyAllPackageFiles=」IfNotHomeSite」> 這行下方:
            <PackageFile Name="TOOLS/clwireg.exe" />
            <PackageFile Name="TOOLS/clwireg_x64.exe" />
            <PackageFile Name="TOOLS/clwireg_ia64.exe" />
  4. 找到<PackageFileName=」dotNetFX30/XPSEPSC-x86-en-US.exe」 這行與 <PackageFile Name=」dotNetFX30/XPSEPSC-amd64-en-US.exe」 這行,並將這兩行的 PublicKey 原本的值改成以下的值 ( 請注意複製的時候不要複製到空白字元 ):
  5. 3082010A0282010100A2DB0A8DCFC2C1499BCDAA3A34AD23596BDB6CBE2122B794C8EAAEBFC6D526C232
    118BBCDA5D2CFB36561E152BAE8F0DDD14A36E284C7F163F41AC8D40B146880DD98194AD9706D0574476
    5CEAF1FC0EE27F74A333CB74E5EFE361A17E03B745FFD53E12D5B0CA5E0DD07BF2B7130DFC606A2885758
    CB7ADBC85E817B490BEF516B6625DED11DF3AEE215B8BAF8073C345E3958977609BE7AD77C1378D33142F
    13DB62C9AE1AA94F9867ADD420393071E08D6746E2C61CF40D5074412FE805246A216B49B092C4B239C74
    2A56D5C184AAB8FD78E833E780A47D8A4B28423C3E2F27B66B14A74BD26414B9C6114604E30C882F3D00B
    707CEE554D77D2085576810203010001
    

  6. 將 Product.xml 存檔。
  7. 將已下載的 .NET Framework 3.5 Service Pack 1 (Full Package) 解壓縮到任意暫存目錄,解壓縮的方法必須透過指令執行:dotNetFx35.exe /x:  (或用WinRAR解壓)
  8. 解壓縮後,該目錄會多出一個WCU目錄,在裡面又會有一個dotNetFramework目錄,請將WCU/dotNetFramework目錄下所有的目錄與檔案都移至[ProgramFiles]/Microsoft SDKs/Windows/v6.0A/Bootstrapper/Packages/DotNetFX35SP1 目錄下。完成後的圖示如下:解壓縮後,該目錄會多出一個 WCU 目錄,在裡面又會有一個 dotNetFramework 目錄,請將 
WCU/dotNetFramework 目錄下所有的目錄與檔案都移至 [Program Files]/Microsoft 
SDKs/Windows/v6.0A/Bootstrapper/Packages/DotNetFX35SP1 目錄下
  9. 如上圖標紅框的部分是 語言包(Language Pack) 的部分,各位在 Visual Studio 2008 SP1 讀我檔案 的2.3.1. 章節裡也可以下載的到,照著目錄放置下載後的檔案即可。 以 Chinese (Traditional) 為例,檔案下載後的目錄結構會變成以下這樣: (簡體中文目錄名是:zh-CHS)C:/Program Files (x86)/Microsoft 
SDKs/Windows/v6.0A/Bootstrapper/Packages/DotNetFX35SP1/zh-CHT/DotNetFX35/x86

.NET Framework 3.5 sp1離線安裝解決方案:

方案一:

第一 下載.net Framework 3.5 Service pack 1 (Full Package) 231MB 安裝包後dotnetfx35.exe,用WinRAR將其解壓縮。
第二 下載中文簡體語言包。
文件名 文件大小
dotnetfx35langpack_ia64zh-CHS.exe  16.9 MB
dotnetfx35langpack_x64zh-CHS.exe  33.3 MB
dotnetfx35langpack_x86zh-CHS.exe  27.4 MB
一般用戶下載dotnetfx35langpack_x86zh-CHS.exe 即可
說明:也可從vs2008 sp1 提取,裡面dotnetfx35langpack_x64zh-CHS.exe和 dotnetfx35langpack_x86zh-CHS.exe都有,前提是你已經下載了VS2008 sp1。
第三 將語言包dotnetfx35langpack_x86zh-CHS.exe複製到第一步解壓縮的/wcu/dotNetFramework /dotNetFX35/x86文件夾裡。
(如果是x64位的,可將dotnetfx35langpack_x64zh-CHS.exe 複製到/wcu/dotNetFramework/dotNetFX35/x64文件夾裡。)
第四 點擊運行dotNetFx35setup.exe,可徹底的離線安裝了。安裝之後需要重啟計算機。

方案二:

解壓後,在命令後運行安裝文件,命令後加上:/lang:ENU

沒有留言:

張貼留言