簡體   English   中英

無法將.net核心控制台應用發布為FDD?

[英]Publish .net core console App as FDD not an option?

我有多個使用.net core用C#編寫的小型助手控制台應用程序。 當我嘗試通過Visual Studio發布它們時,在目標運行時中只有“便攜式”選項。 我無法取消選擇它。 這使得輸出包含我不需要的運行時。

如果我嘗試使用CLI進行發布,而僅運行“ dotnet publish -c Release”命令,則它仍包含運行時。

我曾嘗試將.net核心SDK和應用更新為2.2,但這並沒有給我更多選擇,谷歌也沒有幫助。

以下是控制台應用程序之一的csproj: .csproj文件

以下是我在VS 2017中的發布選項發布選項

我已經在Google搜尋了無數小時,以尋求解決方案。 但是我嘗試過的每個解決方案在發布時仍然包括運行時。

因此,這是我的不得已的辦法,我真的希望這里有人解決方案。

當我嘗試通過Visual Studio發布它們時,在目標運行時中只有“便攜式”選項。 我無法取消選擇它。

據我所知, Portable是Visual Studio 2017中依賴框架的部署(FDD)選項。

如果我嘗試使用CLI進行發布,而僅運行“ dotnet publish -c Release”命令,則它仍包含運行時。

有關使用CLI發布.NET Core應用程序的Microsoft官方文檔清楚地將dotnet publish -c Release標識為命令行的FDD選項。

[輸出]包括我不需要的運行時。

在.NET Core 2.2中創建並使用dotnet publish -c Release的准系統“ Hello World”控制台應用程序( dotnet new console )會在其publish文件夾中生成四個文件(例如appname.deps.jsonappname.dllappname.pdbappname.runtimeconfig.json )。

相反,使用dotnet publish -c Release -r <RID> --self-contained true的同一默認“ Hello World”控制台應用程序的完全自包含部署(SCD)大約有217個文件以上dotnet publish -c Release -r <RID> --self-contained true此處列出 RID) (212個非程序.dlls),大小約為66mb。

我不確定當您說自己有不必要的運行時時是否要指定這212個.dll。 但是,如果這些不是您的意思,那么作為建議,您可能希望查看自己的代碼(例如EnumsSharedHelpers項目)以進一步了解此問題。

另一個選擇可能是簡單地對產生的任何運行時進行重復數據刪除(例如,對多個應用程序使用相同的運行時,如適用)。

暫無
暫無

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

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