【问题标题】:.NET Core app standalone publishing in Visual Studio在 Visual Studio 中独立发布 .NET Core 应用程序
【发布时间】:2018-03-08 11:04:14
【问题描述】:

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

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

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

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

我错过了什么吗?

----------

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    不应将 .pubxml 文件签入源代码管理,因为它依赖于 .user 文件。 .user 文件永远不应签入源代码管理,因为它可能包含敏感信息,并且仅对一个用户和一台机器有效。

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

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

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

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

    【讨论】:

    • 感谢您的回答。我的意思是如何部署一个独立的 .NET Core 应用程序,例如win10-x64 使用 VS IDE(只是为了消除对控制台的需要)? (在 .NET 4.7 中,bin 文件夹包含运行应用程序所需的所有文件,包括本机依赖项)
    • 明白了。它看起来确实像您链接到的另一个问题的欺骗。
    猜你喜欢
    • 1970-01-01
    • 2012-08-11
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    • 2016-10-04
    • 1970-01-01
    • 2018-06-09
    • 2017-06-17
    相关资源
    最近更新 更多