将.Net Framework3.5 SP1打包进安装程序

将.Net Framework3.5 SP1打包进安装程序

最近使用VS2022制作安装程序,因为要兼容windows XP,踩了一些坑,这里做个记录。

转自https://blog.csdn.net/fly043488/article/details/23940749

vs2010打包系统必备选择.net framework 3.5sp1编译错误的解决方法

利用visual studio 2010进行打包程序,默认安装的是Framework 4.0,如果需要将3.5sp1打包到系统中一起安装(选择了"从与我的应用程序相同的位置下载系统必备组件"时),会提示很多诸如此类错误“系统必备组件的安装位置未设置为“组件供应商的网站”,无法在磁盘上找到项“.NET Framework 3.5 SP1”中的文件“DotNetFX35SP1/DotNetFX35/x64/dotnetfx35langpack_x64zh-CHS.exe”。

原因分析:原因是在相应文件夹下面,找不到.net 3.5 sp1的相关模块。

解决方法:visual studio 2010相应的模块目录是:%ProgramFiles%/Microsoft SDKs/Windows/v7.0A/Bootstrapper/Packages/

注,高版本VS目录为:C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages

步骤一:需要从网站上下载以下三个软件包

①.net 3.5 sp1离线安装包

http://download.microsoft.com/download/2/0/e/20e90413-712f-438c-988e-fdaa79a8ac3d/dotnetfx35.exe

②3.5 sp1的64位语言包

http://download.microsoft.com/download/7/7/b/77b96978-c805-4674-a9b0-43351e86b41f/dotnetfx35langpack_x64zh-CHS.exe

③3.5 sp1的32位语言包

http://download.microsoft.com/download/7/7/b/77b96978-c805-4674-a9b0-43351e86b41f/dotnetfx35langpack_x86zh-CHS.exe

整理好的资源:https://download.csdn.net/download/qq_36234964/88611120

步骤二:将下载到的①“.net 3.5 sp1离线安装包”用winrar解压,并将解压后的内容…/wcu/dotNetFramework/下的所有文件(dotNetFX20、dotNetFX30、dotNetFX35、dotNetMSP 文件夹和文件 dotNetFx35setup.exe)复制到%ProgramFiles%/Microsoft SDKs/Windows/v7.0A/Bootstrapper/Packages/DotNetFX35SP1 目录中。

步骤三:在目录“%ProgramFiles%/Microsoft SDKs/Windows/v7.0A/Bootstrapper/Packages/DotNetFX35SP1/zh-Hans ”下,新建文件夹“dotNetFX35”,然后在“dotNetFX35下面再建两个文件夹x64和x86”。即dotNetFX35/x64和dotNetFX35/x86。然后将dotnetfx35langpack_x64zh-CHS.exe拷贝到dotNetFX35/x64下面,将dotnetfx35langpack_x86zh-CHS.exe拷贝到dotNetFX35/x86下边。此步为止,生成打包可以正常通过。

步骤四:步骤三完成后,虽可以编译成功,但会几个警告提示。如下:“.NET Framework 3.5 SP1”中“PublicKey”特性的值与文件“C:/Program Files/Microsoft SDKs/Windows/v7.0A/Bootstrapper/Packages/DotNetFX35SP1/dotNetFX30/XPSEPSC-x86-en-US.exe”的该特性值不匹配。

这是因为 XPSEPSC-x86-en-US.exe 的 publicKey 与 %ProgramFiles%/Microsoft SDKs/Windows/v7.0A/Bootstrapper/Packages/DotNetFX35SP1/product.xml 文件中标记的 publicKey 不同造成的。要想消除警告,我们需要手工帮它匹配上。

主要是“PublicKey”的问题:可以采取以下步骤解决:

首先,定位到错误提示的文件“XPSEPSC-x86-en-US.exe”,然后右键→属性→数字签名→详细信息→查看证书→公钥,然后复制文本框里面的二进制文本,去掉空格并复制信息。

然后,打开将复制的信息,%ProgramFiles%/Microsoft SDKs/Windows/v7.0A/Bootstrapper/Packages/DotNetFX35SP1/product.xml文件,搜索找到“XPSEPSC-x86-en-US.exe”,将其对应的 publicKey 替换成刚才处理好的字符串就 OK 了。

对于:“XPSEPSC-amd64-en-US.exe”采用同样的处理方式。

特性的值与文件不匹配

WARNING: “.NET Framework 3.5 SP1”中“PublicKey”特性的值与文件“C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\DotNetFX35SP1\dotNetFX20\aspnet.msp”的该特性值不匹配。
WARNING: “.NET Framework 3.5 SP1”中“PublicKey”特性的值与文件“C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\DotNetFX35SP1\dotNetFX20\aspnet_64.msp”的该特性值不匹配。

解决:参考这篇文章 https://mbb.eet-china.com/blog/1093567-359101.html

“.NET Framework 3.5 SP1”中“PublicKey”特性的值与文件“C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\DotNetFX35SP1\dotNetFX30\XPSEPSC-x86-en-US.exe”的该特性值不匹配。

这是因为 XPSEPSC-x86-en-US.exe 的 publicKey 与 %ProgramFiles%\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\DotNetFX35SP1\product.xml 文件中标记的 publicKey 不同造成的。要想消除警告,我们需要手工帮它匹配上。

首先,定位到错误提示的文件,然后右键→属性→数字签名,如图所示:

在这里插入图片描述

在“签名列表”中选择签名,然后点“详细信息”,弹出窗口如图所示:
在这里插入图片描述

在窗口中点“查看证书”,在弹出窗口中选择“详细信息”卡片,在下面的列表中选中“公钥”,如图所示:

在这里插入图片描述

然后把公钥对应的编码拷贝到记事本,将其中的空格替换掉。最后,我们打开 product.xml 文件,查找 XPSEPSC-x86-en-US.exe,将其对应的 publicKey 替换成刚才处理好的字符串就 OK 了。

集成WindowsInstaller

由于.NetFramework依赖于windows installer,假如系统不存在的话,需先安装installer才能安装,通常是XP系统会缺少环境,这里为方便,也把它打包进安装程序。

资源可以找:https://download.csdn.net/download/qq_36234964/88611159

境,这里为方便,也把它打包进安装程序。

资源可以找:https://download.csdn.net/download/qq_36234964/88611159

也可以微软官网搜索,然后依照上面方法解压出来放到%ProgramFiles%/Microsoft SDKs/Windows/v7.0A/Bootstrapper/Packages/ 目录下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 首先,.NET Framework 3.5 SP1是一款Microsoft商业应用程序开发框架。对于某些用户,离线安装cab文件是更好的选择,因为它允许在没有互联网连接的计算机上安装框架。 离线安装cab文件的步骤如下: 1. 首先,在Microsoft官网下载.NET Framework 3.5 SP1的cab文件。 2. 当您获得cab文件后,您需要将其下载到您的计算机上而不是在线。 3. 在下载完成后,您需要提取cab文件。打开命令提示符并导航到cab文件所在的文件夹中,并输入以下命令: expand.exe -F:* cab_filename.cab folder_location 其中cab_filename是你的cab文件名,folder_location是你将要提取到的目录。 4. 执行此命令后,文件将提取到所选文件夹中。 5. 接下来,您需要运行以下命令将.NET Framework 3.5 SP1安装到计算机上: dism.exe /online /enable-feature /featurename:NetFX3 /All /Source:folder_location /LimitAccess 其中folder_location是您在步骤3中选择的文件夹位置。 6.等待一段时间,框架就会安装到您的计算机上了。 总之,使用离线安装cab的方法安装.NET Framework 3.5 SP1非常简单,无需互联网连接,并且适用于那些缺乏快速和稳定网络连接的用户。 ### 回答2: .NET Framework 3.5 SP1离线安装cab是一种可以在没有互联网连接的环境中安装.NET 3.5 SP1的方法。在离线安装之前,先要下载离线安装包和必要的cab文件,然后按照一定的步骤行安装。 第一步是下载.NET Framework 3.5 SP1离线安装包和必要的cab文件。下载地址可以在微软官网上找到。将下载好的文件保存在本地磁盘上。 第二步是解压缩离线安装包以及cab文件。可以使用WinRAR等解压软件,将下载好的文件解压缩到一个文件夹中。 第三步是打开CMD命令行工具。按下Win+R组合键,打开运行窗口,输入CMD,然后按下确认键。 第四步是运行DISM.EXE命令。在CMD命令行中输入以下命令: dism /online /enable-feature /featurename:NetFX3 /All /Source:F:\sources\sxs /LimitAccess 其中,F:\sources\sxs是离线安装包和cab文件的路径,可以根据实际情况行修改。 第五步是等待安装完成。安装过程可能比较耗时,请耐心等待。 第六步是检查安装是否成功。可以在控制面板的程序和功能中查看是否已安装.NET Framework 3.5 SP1。 总体来说,.NET Framework 3.5 SP1离线安装cab的方法比较麻烦,需要多个步骤,但是在没有互联网连接的环境中却是必要的。需要注意的是,安装过程中,要确保本机拥有管理员权限,否则可能会出现安装失败的情况。 ### 回答3: .NET Framework 3.5 SP1是Microsoft Windows操作系统的一种应用程序框架,它可以帮助开发人员创建并运行Windows应用程序。 如果您想在没有Internet连接的情况下安装 .NET Framework 3.5 SP1,则可以使用离线安装文件。 在这里,我们将介绍如何使用cab文件行离线安装。 首先,您需要下载 .NET Framework 3.5 SP1离线安装cab文件。您可以在Microsoft官方网站上找到它。下载并存储此cab文件。 接下来,打开您的Windows命令提示符,并导航到存储cab文件的文件夹。在该文件夹中,输入以下命令并按Enter键: dism.exe /online /enable-feature /featurename:NetFX3 /All /Source:<path_to_cab_file> /LimitAccess 在此命令中,“<path_to_cab_file>”应替换为您所存储cab文件的实际路径。 执行此命令后,硬盘驱动器会自动搜索所需的文件以完成安装。 在安装过程中,您可能会被要求输入Windows安装光盘或ISO映像中的路径,以完成 .NET Framework 3.5 SP1的安装。 在这种情况下,您只需要确保输入正确的路径即可完成安装。 总之,使用离线安装cab文件可以帮助您不依赖于互联网,快速、方便地安装 .NET Framework 3.5 SP1。 但是,请确保下载的cab文件是最新版本,并遵循安装过程中的所有提示和说明,以确保正确地安装并提高Windows应用程序的性能和运行效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值