C# 如何在远程主机上使用dotnet publish执行依赖于框架的部署

C# 如何在远程主机上使用dotnet publish执行依赖于框架的部署,c#,asp.net-core,msbuild,.net-core,C#,Asp.net Core,Msbuild,.net Core,我们正在进行一个持续的构建,并试图将dotnet核心应用程序发布为windows服务。我们可以通过以下发布配置文件使用VisualStudio完成此操作 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <WebPublishMethod>FileSystem</WebPublishM

我们正在进行一个持续的构建,并试图将dotnet核心应用程序发布为windows服务。我们可以通过以下发布配置文件使用VisualStudio完成此操作

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <PublishProvider>FileSystem</PublishProvider>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish />
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <RuntimeIdentifier>win-x64</RuntimeIdentifier>
    <ProjectGuid>d655df5a-9266-470d-becd-6d62c919e961</ProjectGuid>
    <SelfContained>false</SelfContained>
    <_IsPortable>true</_IsPortable>
    <publishUrl>C:\publish\webapi</publishUrl>
    <DeleteExistingFiles>True</DeleteExistingFiles>
  </PropertyGroup>
</Project>
问题是,既然我遇到了上面指定的问题,我如何使用发布配置文件模拟NetCore应用程序的VS2017发布


目标输出将是发布不带aspnetcore DLL但带有远程主机可执行文件的net core应用程序。

发布配置文件将与生成一起使用,方法是

-p:DeployOnBuild=true -p:PublishProfile=<ProfileName>

发出一个.exe文件,您可以将其用作windows服务,而不是
path\to\dotnet.exe path\to\app.dll
,该文件仍将使用计算机范围的.NET核心安装。这可能会也可能不会成为3.0中默认输出的一部分。

…问题是…?更新了标题和说明。谢谢。谢谢你,马丁,这是非常详细的,很容易理解和遵循。但是,当我设置指向发布生成的exe的服务时,该服务不会启动,也不会在事件查看器或自定义日志中写入任何日志。是否有关于可以传递到dotnet publish/build的属性的文档?我似乎没有看到一个完整的列表。我用-DeployOnBuild尝试了您的第一个建议,它运行得非常好。非常感谢。
-p:DeployOnBuild=true -p:PublishProfile=<ProfileName>
dotnet publish -r win-x64 --self-contained false -p:UseAppHost=true