6

我正在尝试使用 msbuild GenerateBootstrapper 任务来分发带有框架的 .net 应用程序,而无需互联网连接来安装它。

我在这里发现了许多帖子都指向相同的说明:

为 .NET Framework 3.5 SP1 引导程序启用 Samesite

按照说明操作后,我仍然无法生成引导程序。我可以看到的更明显的问题是,从 dotNetFx35.exe 中提取文件不会提取与自述文件中显示的相同的文件和文件夹列表(例如 TOOLS 文件夹不存在)。

我究竟做错了什么?我是否遵循旧的指示?

msbuild错误如下:

C:\svn\GII\5.1b\Installer\src\Installer\Installer.wixproj(103,5): error MSB3152: The install location for prerequisites has not been set to 'component vendor's web site' and the file 'DotNetFX35SP1\TOOLS\clwireg.exe' in item '.NET Framework 3.5 SP1' can not be located on disk. See Help for more information.
C:\svn\GII\5.1b\Installer\src\Installer\Installer.wixproj(103,5): error MSB3152: The install location for prerequisites has not been set to 'component vendor's web site' and the file 'DotNetFX35SP1\TOOLS\clwireg_x64.exe' in item '.NET Framework 3.5 SP1' can not be located on disk. See Help for more information.
C:\svn\GII\5.1b\Installer\src\Installer\Installer.wixproj(103,5): error MSB3152: The install location for prerequisites has not been set to 'component vendor's web site' and the file 'DotNetFX35SP1\TOOLS\clwireg_ia64.exe' in item '.NET Framework 3.5 SP1' can not be located on disk. See Help for more information.
C:\svn\GII\5.1b\Installer\src\Installer\Installer.wixproj(103,5): warning MSB3165: The value of the 'PublicKey' attribute in '.NET Framework 3.5 SP1' does not match that of file 'C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\DotNetFX35SP1\dotNetFX30\XPSEPSC-x86-en-US.exe'.
C:\svn\GII\5.1b\Installer\src\Installer\Installer.wixproj(103,5): warning MSB3165: The value of the 'PublicKey' attribute in '.NET Framework 3.5 SP1' does not match that of file 'C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\DotNetFX35SP1\dotNetFX30\XPSEPSC-amd64-en-US.exe'.
C:\svn\GII\5.1b\Installer\src\Installer\Installer.wixproj(103,5): error MSB3152: The install location for prerequisites has not been set to 'component vendor's web site' and the file 'DotNetFX35SP1\dotNetMSP\x86\NetFX2.0-KB948609-v6001-x86.msu' in item '.NET Framework 3.5 SP1' can not be located on disk. See Help for more information.
C:\svn\GII\5.1b\Installer\src\Installer\Installer.wixproj(103,5): error MSB3152: The install location for prerequisites has not been set to 'component vendor's web site' and the file 'DotNetFX35SP1\dotNetMSP\x86\NetFX3.0-KB948610-v6001-x86.msu' in item '.NET Framework 3.5 SP1' can not be located on disk. See Help for more information.
C:\svn\GII\5.1b\Installer\src\Installer\Installer.wixproj(103,5): error MSB3152: The install location for prerequisites has not been set to 'component vendor's web site' and the file 'DotNetFX35SP1\dotNetMSP\x64\NetFX2.0-KB948609-v6001-x64.msu' in item '.NET Framework 3.5 SP1' can not be located on disk. See Help for more information.
C:\svn\GII\5.1b\Installer\src\Installer\Installer.wixproj(103,5): error MSB3152: The install location for prerequisites has not been set to 'component vendor's web site' and the file 'DotNetFX35SP1\dotNetMSP\x64\NetFX3.0-KB948610-v6001-x64.msu' in item '.NET Framework 3.5 SP1' can not be located on disk. See Help for more information.

任何帮助将非常感激!

4

2 回答 2

4

我已经解决了这个问题。Microsoft 文档提供的下载完整 .net 框架 3.5 SP1 的链接不正确。.NET Framework 3.5 SP1 完整安装包中的包确实包含预期的文件。

于 2010-09-03T14:46:23.240 回答
3

看看这个

大家好,

让我对这个问题有所了解。

我们仍在调查为什么实际文件的公钥令牌与我们在 product.xml 文件中的不同。不用说,尽管我们进行了测试,但还是有一些东西漏掉了。你对此深表歉意。

好消息是引导程序在这种情况下工作得很好。在构建时,我们将磁盘上文件的数字签名与 product.xml 或 package.xml 中列出的 PublicKeyToken 进行比较。如果它们不同,则我们使用磁盘上实际文件的值,因为这将被复制和/或发布在“与我的应用程序相同的位置”场景中。这样,引导程序可以正常工作。

我们确实显示了构建警告,以提醒开发人员/构建者某些与预期不同的情况。这在“从组件供应商的网站下载”方案中具有价值,因为如果从组件供应商下载的文件与磁盘上的文件相同,则下载将无法通过证书测试并且不会安装。幸运的是,在这种情况下,实际上只有 dotnetfx35setup.exe 文件是从 Microsoft 下载的,并且该密钥是正确的。

如果您希望摆脱构建警告,可以使用以下值更新 Product.XML 中的 PublicKey:

将它用于两个 XPSEPSC* 文件。

我希望这有助于澄清事情,我们将继续跟进。感谢您报告此问题,它将帮助我们避免更多人遇到此问题。

真挚地,

David Guyer 项目经理 - 安装项目 Visual Studio

于 2011-04-27T04:43:35.333 回答