天天看点

vs2010打包发布注意事项

    终于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);

        } 

    }

}

继续阅读