這兩天都在弄一個 Windows Setup 專案,希望弄得盡善盡美,直到剛剛終於大功告成,但當我想將 .Net Framework 3.5 SP1 的安裝檔也加入到我的 Setup 專案時(如下圖),卻發現專案無法編譯。
錯誤訊息如下:
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.
解決的方式如下:
- 先取得 .NET Framework 3.5 Service Pack 1 (Full Package) ( 231 MB )
- 再根據 Visual Studio 2008 SP1 readme 的 2.3.1. General Issues 章節進行修正即可!
由於中文版的 Visual Studio 2008 SP1 讀我檔案 文件品質有問題,照著做很容易做錯,因此修正的流程補充說明如下:
- 先找到 [Program Files]\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\DotNetFX35SP1 目錄,若是 x64 架構 [Program Files] 請替換成 C:\ProgramFiles(x86)
- 用「記事本」開啟該目錄下的 Product.xml 文件
- 將以下片段插入到 <PackageFiles CopyAllPackageFiles="IfNotHomeSite"> 這行下方:
<PackageFile Name="TOOLS\clwireg.exe" />
<PackageFile Name="TOOLS\clwireg_x64.exe" />
<PackageFile Name="TOOLS\clwireg_ia64.exe" />
- 找到 <PackageFile Name="dotNetFX30\XPSEPSC-x86-en-US.exe" 這行與 <PackageFile Name="dotNetFX30\XPSEPSC-amd64-en-US.exe" 這行,並將這兩行的 PublicKey 原本的值改成以下的值 ( 請注意複製的時候不要複製到空白字元 ):
- 將 Product.xml 存檔。
- 將已下載的 .NET Framework 3.5 Service Pack 1 (Full Package) 解壓縮到任意暫存目錄,解壓縮的方法必須透過指令執行。
- 解壓縮後,該目錄會多出一個 WCU 目錄,在裡面又會有一個 dotNetFramework 目錄,請將 WCU\dotNetFramework 目錄下所有的目錄與檔案都移至 [Program Files]\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\DotNetFX35SP1 目錄下。
完成後的圖示如下:
- 如上圖標紅框的部分是 語言包(Language Pack) 的部分,各位在 Visual Studio 2008 SP1 讀我檔案 的 2.3.1. 一般?? 章節裡也可以下載的到,照著目錄放置下載後的檔案即可。
以下列出所有語言包的下載連結:
以 Chinese (Traditional) 為例,檔案下載後的目錄結構會變成以下這樣:
相關連結