簡體   English   中英

如何添加.Net框架先決條件來安裝安裝

[英]How to add .Net framework prerequisite to setup install

我在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-CHS.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

對我來說(VS2017企業版)正確的路徑是(對於4.7.1)C:\\ Program Files(x86)\\ Microsoft SDKs \\ ClickOnce Bootstrapper \\ Packages \\ DotNetFX471

希望這會有所幫助

Benoist LUGNIER

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM