将.net核心控制台应用程序发布为FDD不是选项吗?

将.net核心控制台应用程序发布为FDD不是选项吗?,.net,publishing,.net,Publishing,我有多个使用.NETCore用C#编写的小型助手控制台应用程序。当我试图通过VisualStudio发布它们时,我在目标运行时只有“Portable”选项。我不能取消选择它。这使得输出包含我不需要的运行时 如果我尝试使用CLI仅运行“dotnet publish-c Release”命令进行发布,它仍然包括运行时 我曾尝试将.net核心SDK和应用程序更新为2.2,但没有给我更多的选择,谷歌也没有帮助 以下是其中一个控制台应用程序的csproj: 以下是我在VS 2017中的发布选项: 我在

我有多个使用.NETCore用C#编写的小型助手控制台应用程序。当我试图通过VisualStudio发布它们时,我在目标运行时只有“Portable”选项。我不能取消选择它。这使得输出包含我不需要的运行时

如果我尝试使用CLI仅运行“dotnet publish-c Release”命令进行发布,它仍然包括运行时

我曾尝试将.net核心SDK和应用程序更新为2.2,但没有给我更多的选择,谷歌也没有帮助

以下是其中一个控制台应用程序的csproj:

以下是我在VS 2017中的发布选项:

我在谷歌搜索了无数个小时,试图找到一个解决方案。但我尝试过的每个解决方案在发布时仍然包括运行时

所以这是我最后的选择,我真的希望这里有人能找到解决办法

当我试图通过VisualStudio发布它们时,我在目标运行时只有“Portable”选项。我不能取消选择它

Portable
是(据我所知)Visual Studio 2017中的依赖于框架的部署(FDD)选项

如果我尝试使用CLI仅运行“dotnet publish-c Release”命令进行发布,它仍然包括运行时

这清楚地将
dotnet publish-c Release
标识为命令行的FDD选项

[T] 输出包括我不需要的运行时

在.NET Core 2.2中创建并使用
dotnet publish-c发行版发布的一个简单的“Hello World”控制台应用程序(
dotnet new console
)在其发布文件夹中生成四个文件(例如
appname.deps.json
appname.dll
appname.pdb
appname.runtimeconfig.json

相比之下,使用
dotnet publish-c Release-r--Self-completed true
(列出的RID)发布的同一默认“Hello World”控制台应用程序的完全自包含部署(SCD)大约有217多个文件(212个非program.dll),约66mb

当你说你有不必要的运行时,我不确定你是指这些212.dll。但是,如果这些不是您的意思,那么作为一项建议,您可能希望查看您自己的代码(例如,
Enums
sharedhelp
项目),以便更深入地了解这个问题


另一种选择可能是简单地对生成的任何运行时进行重复数据消除(例如,对多个应用程序使用相同的运行时,如适用)

你好,阿纳克苏曼。问题是,当我使用标准命令“dotnetpublish-crease”时,它仍然以SCD的形式发布应用程序,运行时是我不想要的。我根本无法让它仅仅作为FDD发布。Enum/sharehelpers项目只是类库,因此问题不应该存在。您可以使用选项
--self-contained false
关闭SCD。