浮华过后,真金始现

一切问题最终都是时间问题,一切烦恼其实都是自寻烦恼
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

[转]VS2008打包framework 3.5 sp1失败的解决方案

Posted on 2009-05-07 17:21  Kolor  阅读(2089)  评论(0编辑  收藏  举报

转自:http://www.cnblogs.com/fosoyo/archive/2009/04/18/1438484.html

在安装和部署应用程序时,在“系统必备”中包含“.NET Framework 3.5 SP1”,并选择“从与我的应用程序相同的位置下载系统必备组件”或者“从下列位置下载系统必备组件”时,生成失败!找不到.NET Framework 3.5 SP1的安装组件。   

 

 

 

由于.NET Framework 3.5 SP1 bootstrapper 组件包不存在,所以生成出错。bootstrapper 组件包是生成 .NET Framework 安装包的必要组件。它位于[Program Files]\Microsoft SDKs\Windows\v6.0A\Bootstrapper目录或者%ProgramFiles(x86)%\Microsoft SDKs\Windows\v6.0A\Bootstrapper目录下。在其 Packages 文件夹下包含了 .NET Framework 必备组件的安装程序,如果选择了必备组件,它们可能被打包在你的安装项目中。

 

在上图中那个 DotNetFX35SP1 目录中,几乎没有Bootstrapper 。问题就出现在这里。在安装 .NET Framework 3.5 SP1 SDK 时是否看过其中的“自述文档”,关于此版本的 Bootstrapper 没有被自动创建的问题微软写在了它的 Readme 文件中,但是,在《Visual Studio 速成版自述文件》找不到关于Bootstrapper的说明,应该去阅读英文原版的 Readme(晚上一朋友说不能部署安装DotNetFX35SP1,问其安装的语言版本为简体中文,由于我安装的是Windows 7 Build 7000,在DXperience v2009 vol 1.2的时候一直安装不上,现在看到DXperience v2009 vol 1.3解决了,一直在安装DXperience就没有去找原因,装完DXperience再找微软的说明文档,在英文原版中看到解决方法)。Visual Studio 2008 Service Pack 1 (SP1) Readme - 这篇文档的 2.3.1.1 章节中详细描述了关于如何解决 3.5SP1 bootstrapper 的问题。

 

解决方法:
如果有VS2008SP1CHSX1512981.iso那个VS2008SP1简体中文光盘镜像文件。从中找到需要的三个安装包:dotnetfx35.exedotnetfx35langpack_x86zh-CHS.exedotnetfx35langpack_x64zh-CHS.exe。就不必再从网上下载。下面是参考《Visual Studio 2008 Service Pack 1 (SP1) Readme》文档中的解决步骤:

  1. 修改配置文件。
    打开[Program Files]\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\DotNetFx35SP1文件夹或者%ProgramFiles(x86)%\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\DotNetFx35SP1文件夹(64位操作系统),比如我这里是:D:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\DotNetFx35SP1。

    用记事本编辑 Product.xml 文件,在<PackageFiles>元素下添加:
    <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",将它的PublicKey改成:            
    3082010A0282010100A2DB0A8DCFC2C1499BCDAA3A34AD23596BDB6CBE2122B794C8EAAEBFC6D526C232118BBCDA5D2CFB36561E152BAE8F0DDD14A36E284C7F163F41AC8D40B146880DD98194AD9706D05744765CEAF1FC0EE27F74A333CB74E5EFE361A17E03B745FFD53E12D5B0CA5E0DD07BF2B7130DFC606A2885758CB7ADBC85E817B490BEF516B6625DED11DF3AEE215B8BAF8073C345E3958977609BE7AD77C1378D33142F13DB62C9AE1AA94F9867ADD420393071E08D6746E2C61CF40D5074412FE805246A216B49B092C4B239C742A56D5C184AAB8FD78E833E780A47D8A4B28423C3E2F27B66B14A74BD26414B9C6114604E30C882F3D00B707CEE554D77D2085576810203010001

    同样,搜索<PackageFile Name="dotNetFX30\XPSEPSC-amd64-en-US.exe",将它的PublicKey也改成上面的相同值并保存配置文件。

  2. 提取dotNetFx35.exe文件内容。你可以点击这里下载:http://go.microsoft.com/fwlink?LinkID=118080
    运行命令提示符,进入dotNetFx35.exe所在目录,输入“dotNetFx35.exe /x:”,会自动在当前目录解压出“WCU”文件夹(也可以用7z或WinRAR解压,我比较中意用7z,因为是免费的解压缩软件。)。将WCU文件夹下所有文件复制到“%Program Files%\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\DotNetFx35SP1”或者“%ProgramFiles(x86)%\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\DotNetFx35SP1”(64位操作系统)文件夹下面。

  3. 提取语言包。把对应的语言包复制到dotNetFx35SP1下的对应文件夹中。
    比如简体中文,将dotnetfx35langpack_x86zh-CHS.exe复制到DotNetFX35SP1\zh-CHS\DotNetFX35\x86目录里,将dotnetfx35langpack_x64zh-CHS.exe复制到DotNetFX35SP1\zh-CHS\DotNetFX35\x64目录里。繁体中文将dotnetfx35langpack_x86zh-CHT.exe复制到DotNetFX35SP1\zh-CHT\DotNetFX35\x86目录里,将dotnetfx35langpack_x64zh-CHT.exe复制到DotNetFX35SP1\zh-CHT\DotNetFX35\x64目录里。注意:x86和x64的语言包都需要被复制过去。
    如果没有语言包,参考下面的表格下载自己的语言文件:

 

 


Language

Architecture

Source URL

Destination

Chinese (Simplified)

x86

http://go.microsoft.com/fwlink?LinkID=118146

zh-CHS\DotNetFX35\x86

x64

http://go.microsoft.com/fwlink?LinkID=118151

zh-CHS\DotNetFX35\x64

Chinese (Traditional)

x86

http://go.microsoft.com/fwlink?LinkID=118087

zh-CHT\DotNetFX35\x86

x64

http://go.microsoft.com/fwlink?LinkID=118050

zh-CHT\DotNetFX35\x64

English

x86

N/A

N/A

x64

N/A

N/A

French

x86

http://go.microsoft.com/fwlink?LinkID=118148

fr\DotNetFX35\x86

x64

http://go.microsoft.com/fwlink?LinkID=118153

fr\DotNetFX35\x64

German

x86

http://go.microsoft.com/fwlink?LinkID=118149

de\DotNetFX35\x86

x64

http://go.microsoft.com/fwlink?LinkID=118154

de\DotNetFX35\x64

Italian

x86

http://go.microsoft.com/fwlink?LinkID=118097

it\DotNetFX35\x86

x64

http://go.microsoft.com/fwlink?LinkID=118115

it\DotNetFX35\x64

Japanese

x86

http://go.microsoft.com/fwlink?LinkID=118096

ja\DotNetFX35\x86

x64

http://go.microsoft.com/fwlink?LinkID=118114

ja\DotNetFX35\x64

Korean

x86

http://go.microsoft.com/fwlink?LinkID=118147

ko\DotNetFX35\x86

x64

http://go.microsoft.com/fwlink?LinkID=118152

ko\DotNetFX35\x64

Portuguese – Brazil

x86

http://go.microsoft.com/fwlink?LinkID=118092

pt-BR\DotNetFX35\x86

x64

http://go.microsoft.com/fwlink?LinkID=118110

pt-BR\DotNetFX35\x64

Russian

x86

http://go.microsoft.com/fwlink?LinkID=118090

ru\DotNetFX35\x86

x64

http://go.microsoft.com/fwlink?LinkID=118108

ru\DotNetFX35\x64

Spanish

x86

http://go.microsoft.com/fwlink?LinkID=118101

es\DotNetFX35\x86

x64

http://go.microsoft.com/fwlink?LinkID=118119

es\DotNetFX35\x64

 

 

 

 

通过以上方法之后生成部署安装成功

 

 

附:product.xml下载

相关连接:

Additional Bootstrapper Packages to Redistribute Components Using Visual Studio Setup Projects and Clickonce Applications

其他引导程序包用来通过 Visual Studio 安装程序项目与 Clickonce 应用程序再发行组件

 

要解决问题的那兄弟都在梦中呢(他今天周六还上班),呵呵!当你梦中醒来,发现我帮你解决了,你是不是在梦中都笑了,哈哈!:)

希望也能帮助在困扰安装和部署.NET Framework 3.5 SP1 bootstrapper 包的朋友。