2024年1月1日发(作者:)

选择ork3.5SP1系统必备,ClickOnce发布提示缺少文件

ClickOnce发布,在系统必备中勾选了 .NET Framework 3.5 SP1,并选择了"从与我的应用程序相同的位置下载系统必备组件"时,执行发布,会提示缺少很多文件,答案就在下面。

首先我们需要 framework 3.5_SP1 安装包,可以到下面的地址下载

/download/2/0/e/20e90413-712f-438c-988e-fdaa79a8ac3d/

把它解压,导航到 framework 3.5_SP1/wcu/dotNetFramework/ 文件夹,将其中的

dotNetFX20、dotNetFX30、dotNetFX35、dotNetMSP文件夹和文件

复制到 %ProgramFiles%/Microsoft

SDKs/Windows/v7.0A/Bootstrapper/Packages/DotNetFX35SP1 目录中,对于 x64 操作系统,该路径位于 %ProgramFiles(x86)% 下。

这时执行发布,会提示如下错误:

系统必备组件的安装位置未设置为“组件供应商的网站”,并且无法在磁盘上找到项“.NET Framework 3.5 SP1”中的文件“DotNetFX35SP1/DotNetFX35/x64/dotnetfx35langpack_”。有关详细信息,请参见帮助。

按照提示,我们去下载需要的文件,地址如下:

/downloads/?familyid=8489ED13-B831-4855-96F7-DD35E4C02A20&displaylang=zh-cn

这里我们只需要下载 dotnetfx35langpack_ 和

dotnetfx35langpack_ 即可,因为发布只提示缺少这两个文件。

=======如果你急着发布,这段可以忽略=======

下载完成后,将他们放到 %ProgramFiles%/Microsoft

SDKs/Windows/v7.0A/Bootstrapper/Packages/DotNetFX35SP1/DotNetFX35/ 目录对应的文件夹内,dotnetfx35langpack_ 放 x64,dotnetfx35langpack_ 放 x86。

以为一切正常了,执行发布,仍然报错,这是怎么回事儿?Google了半天,在这个帖子(/hhxshhxs88/archive/2009/07/25/)里找到了解决办法,下面是具体操作,与此帖不同的是,我没有创建zh-chs文件夹。

==========================================

导航到 %ProgramFiles%/Microsoft

SDKs/Windows/v7.0A/Bootstrapper/Packages/DotNetFX35SP1/zh-Hans 目录,新建一个文件夹,命名为 dotNetFX35,在 dotNetFX35 文件夹内建立两个子文件夹,分别命名为 x86 和 x64,然后把刚才下载的文件拷到相应的子目录中。

再去发布,这回应该没有错误了。

********以下内容仅供吹毛求疵者参考********

但是还有两个警告,类似如下的提示:

“.NET Framework 3.5 SP1”中“PublicKey”特性的值与文件“C:/Program

Files/Microsoft

SDKs/Windows/v7.0A/Bootstrapper/Packages/DotNetFX35SP1/dotNetFX30/”的该特性值不匹配。

这是因为 的publicKey与 %ProgramFiles%/Microsoft

SDKs/Windows/v7.0A/Bootstrapper/Packages/DotNetFX35SP1/ 文件中标记的publicKey不同造成的。要想消除警告,我们需要手工帮它匹配上。

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

在“签名列表”中选择签名,然后点“详细信息”,弹出窗口如图所示:

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

然后把公钥对应的编码拷贝到记事本,将其中的空格替换掉。最后,我们打开

文件,查找 ,将其对应的publicKey替换成刚才处理好的字符串就 OK 了。

*****************************************

另附

当选择".NET Framework 3.5 SP1 Client Profile"系统必备,发布时会提示找不到

,大家可以通过下面的地址下载,然后拷贝到 %ProgramFiles%/Microsoft

SDKs/Windows/v7.0A/Bootstrapper/Packages/DotNetFx35Client 目录即可成功发布。

/downloads/?FamilyID=8cea6cd1-15bc-4664-b27d-8ceba808b28b&displaylang=zh-cn

注意: 是 Client Profile 基于 Web 的安装程序,需要通过 Internet 连接下载和安装。