終于OK了,真是怕搞不定這個東西,感謝網絡上面願意分享技術的大牛們。
雖然有大牛們的文檔和詳細的說明,但是還是糾結了2天才完成我自己的一個第一個Windows Server的打包和釋出。
其實,在上一篇轉載的bolg就已将介紹的比較詳細了,這裡就主要就是記錄我出現問題的部分和如何解決的。
第一點:
錯誤: 系統必備元件的安裝位置未設定為“元件供應商的網站”,并且無法在磁盤上找到項“.NET Framework 3.5 SP1”中的檔案“DotNetFX35SP1\TOOLS\clwireg.exe”。有關詳細資訊,請參見幫助。
錯誤: 系統必備元件的安裝位置未設定為“元件供應商的網站”,并且無法在磁盤上找到項“.NET Framework 3.5 SP1”中的檔案“DotNetFX35SP1\TOOLS\clwireg_x64.exe”。有關詳細資訊,請參見幫助。
錯誤: 系統必備元件的安裝位置未設定為“元件供應商的網站”,并且無法在磁盤上找到項“.NET Framework 3.5 SP1”中的檔案“DotNetFX35SP1\TOOLS\clwireg_ia64.exe”。有關詳細資訊,請參見幫助。
錯誤: 系統必備元件的安裝位置未設定為“元件供應商的網站”,并且無法在磁盤上找到項“.NET Framework 3.5 SP1”中的檔案“DotNetFX35SP1\dotNetFX20\aspnet.msp”。有關詳細資訊,請參見幫助。
解決方案:
1.要下載下傳.NET Framework 3.5完全包(下載下傳位址如下:)
http://download.microsoft.com/download/2/0/e/20e90413-712f-438c-988e-fdaa79a8ac3d/dotnetfx35.exe
2.使用winrar或者其他解壓工具,将已經下載下傳的dotnetfx3.5解壓縮,解壓完了之後,将會看到一個WCU的檔案夾
3. 将解壓縮的 WCU/dotNetFramework 下的内容全部copy到C:\Program Files\MicrosoftDKs\Windows\v7.0A\Bootstrapper\Packages\DotNetFX35SP1這個目錄下面。
4.打開C:\ProgramFiles\MicrosoftSDKs\Windows\v7.0A\Bootstrapper\Packages\DotNetFX35SP1這個目錄找到Product.xml 檔案如圖:
5.用記事本打開,将下面内容copy進去如圖: <PackageFile Name="TOOLS/clwireg.exe" /> <PackageFile Name="TOOLS/clwireg_x64.exe" /> <PackageFile Name="TOOLS/clwireg_ia64.exe" />
再找到<PackageFileName=”dotNetFX30\XPSEPSC-x86-en-US.exe” 這行與 <PackageFile Name=”dotNetFX30\XPSEPSC-amd64-en-US.exe” 這行,并将這兩行的 PublicKey 原本的值改成以下的值 ( 請注意複制的時候不要複制到空格符 ):
3082010A0282010100A2DB0A8DCFC2C1499BCDAA3A34AD23596BDB6CBE2122B794C8EAAEBFC6D526C232118BBCDA5D2CFB36561E152BAE8F0DDD14A36E284C7F163F41AC8D40B146880DD98194AD9706D05744765CEAF1FC0EE27F74A333CB74E5EFE361A17E03B745FFD53E12D5B0CA5E0DD07BF2B7130DFC606A2885758CB7ADBC85E817B490BEF516B6625DED11DF3AEE215B8BAF8073C345E3958977609BE7AD77C1378D33142F13DB62C9AE1AA94F9867ADD420393071E08D6746E2C61CF40D5074412FE805246A216B49B092C4B239C742A56D5C184AAB8FD78E833E780A47D8A4B28423C3E2F27B66B14A74BD26414B9C6114604E30C882F3D00B707CEE554D77D2085576810203010001 最後儲存Product.xml。
6. 下載下傳 dotnetfx35langpack_x86zh-CHS.exe和dotnetfx35langpack_x64zh-CHS.exe
下載下傳位址分别為:
http://download.microsoft.com/download/7/7/b/77b96978-c805-4674-a9b0-43351e86b41f/dotnetfx35langpack_x86zh-CHS.exe
http://download.microsoft.com/download/7/7/b/77b96978-c805-4674-a9b0-43351e86b41f/dotnetfx35langpack_x64zh-CHS.exe
7.下載下傳好後,找到C:\Program Files\Microsoft
SDKs\Windows\v7.0A\Bootstrapper\Packages\DotNetFX35SP1下面的”
zh-Hans”檔案夾,進入此檔案夾,建立dotNetFX35檔案夾,再在dotNetFX35
檔案夾下建立x86和x64檔案夾 把下載下傳好的檔案分别copy到這二個檔案夾如圖:
第二點:
就是重寫完成安裝之後執行的操作:
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration.Install;
using System.Linq;
using System.Reflection;
namespace InstallService
{
[RunInstaller(true)]
public partial class Installer : System.Configuration.Install.Installer
{
public Installer()
{
InitializeComponent();
}
public static void Main()
protected override void OnAfterInstall(IDictionary savedState)
base.OnAfterInstall(savedState);
Assembly asm = Assembly.GetExecutingAssembly();
string path = asm.Location.Remove(asm.Location.LastIndexOf("\\")) + "\\";
string arg = " -w " + path + " --install";
try
{
//System.Diagnostics.Process.Start(path + "\\yate-service.exe
");
System.Diagnostics.Process.Start(path + "\\yate-service.exe
", arg);
}
catch (Exception my)
throw new Exception(my.Message);
}
}
}