c# - Visual Studio 中的 .NET Core 应用程序独立发布

标签 c# visual-studio .net-core publish multiplatform

我已经了解 .NET Core“发布”命令以及如何针对不同平台进行发布。例如:

dotnet publish -c Release -f netcoreapp2.0 -r win10-x64

但是,我想知道有没有办法直接在 .csproj 文件中指定这些参数?

(我知道 <RuntimeIdentifier> 属性,但使用此属性,已发布的应用程序不是独立的,更重要的是,不会复制驻留在“runtimes/(OS)/native/”中的任何 native 库.)

我错过了什么吗?

----------------------------------

编辑: 如何使用 VS IDE 部署独立的 .NET Core 应用程序(以生成与我之前编写的命令相同的输出(dotnetpublish...),最好通过修改 csproj 文件?

这个问题似乎是以下内容的克隆:Publish .net core app from VS 2017 (抱歉,之前没看到)。

最佳答案

不,发布详细信息无法存储在 csproj 中。如果您在 Visual Studio 中创建发布配置文件,详细信息将保存在 pubxml 中。和pubxml.user文件存储在 Properties\PublishProfiles项目文件夹内的文件夹。

pubxml的内容取决于发布目标(例如,Azure 与本地文件夹),并且它们没有记录。看来微软真的只是希望你通过 Visual Studio 创建它们。我能找到的最新文档 here甚至带有以下警告:

The .pubxml file shouldn't be checked into source control because it depends on the .user file. The .user file should never be checked into source control because it can contain sensitive information and it's only valid for one user and machine.

我觉得这不太适合企业或团队合作,您可能希望标准化发布设置,但这就是我们今天所拥有的。对我来说这似乎很奇怪的另一个原因是,配置文件包含许多只能手动修改的设置(例如,Azure 网站配置文件将 <LaunchSiteAfterPublish> 设置为 true,如果您的站点运行,这是一个非常烦人的默认设置在不同的 URL 下)。

所有这些东西的 github 存储库是 aspnet/websdk .

如果您确实想坚持使用命令行(作为一个在没有其他选择的情况下长大的人,我真的不明白这种趋势),您可以通过以下方式引用现有的发布配置文件:

dotnet publish WebApplication.csproj /p:PublishProfile=<FolderProfileName>

关于c# - Visual Studio 中的 .NET Core 应用程序独立发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49171569/

相关文章:

macos - Visual Studio for Mac 在新更新后出现故障 - .NET Core 2.2 SDK 不兼容

c# - 不能 "Add or Update"实体,因为无法更改主键

C#:了解事件语法

c# - DirectSound - 如何开始

visual-studio - 在 Visual Studio 中使用 Makefile 的好技术?

c++ - boost 测试—— "The ordinal 313 could not be located"

c# - ASP.NET 动态表单生成和提交

c# - 编译器错误 Visual Studio mac

c# - 调用链中的异步等待分配

c# - `PowerShell.Create()` 返回 null