如何添加.Net框架先决条件来安装安装

我在MS Visual Studio 2017中有一个C#WinForms项目。 我添加了一个Visual Studio安装程序安装向导项目来为我的应用程序创建安装程序。 这是我第一次使用安装程序项目。

安装程序正确具有.Net framework 4.5.1的先决条件。 但是,我想让安装程序包含.Net框架安装,而不是要求用户在安装时单独下载和安装它(某些用户的计算机没有Internet连接)。

我已经在安装属性页中设置了“从与我的应用程序相同的位置下载先决条件”的先决条件,但是当我构建设置时,我看到3个错误,如下所示:

错误:要在“先决条件”对话框中启用“从我的应用程序的相同位置下载先决条件”,您必须为项目“Microsoft .NET Framework 4.6”下载文件“DotNetFX461 \ NDP461-KB3102436-x86-x64-AllOS-ENU.exe” .1(x86和x64)’到您的本地计算机。 有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=616018 。

包含的链接并不真正有用,因为它引用了ClickOnce安装。 我提到的NDP461 exe,但我不知道在哪里放。 我看到一些其他问题提到使用MS Bootstrapper Package Manager创建一个bootstrapper包,但是这似乎已经从MS上关闭了code.msdn.microsoft而从互联网上消失了, 显然没有关于替换的信息 。 此外,我可以在该主题上找到的大多数文档和SO问题都与旧版本的MSVS有关,并且与MSVS 2017没有关联(至少不能直接让我弄清楚!)。

我如何实际获得安装项目以找到exe? 我是否只需要将它放在正确的位置(已尝试过在各种MSDN页面和注册表项下列出的一些)? 或者我需要创建一个bootstrapper包吗? 如果是后者,是否有关于此过程的最新文档? 谢谢!

PS:如果我选择使用已安装在我的开发机器上的(更新的).Net框架,那么这个过程会更容易吗? (我猜测机器上某处可能有安装信息)

更新所以我尝试切换到目标.NET 4.6,下载NDP46-KB3045557-x86-x64-AllOS-ENU.exe并将其放在目录C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\DotNetFX46 。 安装程序设置项目现在已构建,但会发出以下警告(同样,其中3个):

警告:“Microsoft .NET Framework 4.6(x86和x64)”中“PublicKey”属性的值与文件’C:\ Program Files(x86)\ Microsoft SDK \ ClickOnce Bootstrapper \ Packages \ DotNetFX46 \ NDP46的值不匹配-KB3045557 86 x64的ALLOS-CHS.exe程序”。

我想这意味着我应该这样做吗?

只需从此链接下载NDP461-KB3102436-x86-x64-AllOS-ENU.exe文件

并复制到C:\ Program Files(x86)\ Microsoft SDKs \ ClickOnce Bootstrapper \ Packages \ DotNetFX461

对于Microsoft Visual Studio 2017 ,添加引导程序包的正确文件夹是:

 C:\Program Files (x86)\Microsoft Visual Studio 14.0\SDK\Bootstrapper\Packages\ 

可以在此处找到各种可再发行的.NET软件包的链接以及有关不同部署选项的信息: https : //docs.microsoft.com/en-us/dotnet/framework/deployment/deployment-guide-for-developers

错误消息为您提供了要添加到packages文件夹的正确文件夹。 因此,应将文件NDP46-KB3045557-x86-x64-AllOS-ENU.exe添加到Packages下的“DotNetFX46”文件夹中。

我真的不明白为什么微软没有采取措施使这个过程成为一个自动化过程,或者至少提供一个关于如何在Visual Studio上将引导程序包添加到不同版本的分步指南。 多年来,程序和文件夹已多次更改。

公钥错误很可能是由于至少有两个版本的NDP46-KB3045557-x86-x64-AllOS-ENU.exe文件以相同的文件名分发,但公钥不同。 点击此链接: https : //connect.microsoft.com/VisualStudio/feedback/details/1584164/bootstrapper-packages-have-broken-links-and-wrong-public-keys