繁体   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