默认情况下阻止 .NET Core 3.0 构建 EXE 文件

Bri*_*anM 10 .net command-line-interface .net-core-3.0

在 .NET Core 3.0 中,在构建过程中添加了一个小功能。根据微软的说法:

.NET Core 现在默认构建依赖于框架的可执行文件。对于使用全局安装版本的 .NET Core 的应用程序,此行为是新的。

我已经搜索过,但我找不到防止这种情况的方法。不幸的是,这个可执行文件在将我的应用程序推送到 Cloud Foundry 时会导致我出现问题,因为它现在认为它是一个独立的 EXE 文件,而它应该使用为我的应用程序构建的 DLL 文件通过 dotnet cli 运行它。

有没有办法阻止这个默认的 EXE 被构建?

我总是可以在我的构建过程中添加最后一步来删除它,但似乎应该有一种方法可以首先防止它。

Bri*_*anM 15

@PeterHuene 和 @vcsjones 在上面的评论中完美地回答了这个问题:

UseAppHost属性可以设置为 false(例如/p:UseAppHost=false在命令行上),这将禁用可执行文件的创建。

或者

作为命令行更改的替代方法,您也可以<UseAppHost>false</UseAppHost>在 .csproj 中进行设置<PropertyGroup>