[英]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文件
我已经在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.json
, appname.dll
, appname.pdb
和appname.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。 但是,如果这些不是您的意思,那么作为建议,您可能希望查看自己的代码(例如Enums
和SharedHelpers
项目)以进一步了解此问题。
另一个选择可能是简单地对产生的任何运行时进行重复数据删除(例如,对多个应用程序使用相同的运行时,如适用)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.