Kai*_*r69 3 c# msbuild .net-core asp.net-core
我们正在进行持续构建,并尝试将 dotnet 核心应用程序发布为 Windows 服务。我们可以使用具有以下发布配置文件的 Visual Studio 执行此操作
<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>
Run Code Online (Sandbox Code Playgroud)
起初我们尝试了阻力最小的路径并尝试调用
dotnet publish project /p:PublishProfile=<FolderProfileName>
此命令忽略了发布配置文件设置,因此我们退回到手动设置属性。然而,这只会构建一个带有 exe 但所有网络核心 dll 的自包含应用程序或仅包含 dll 的框架相关应用程序
命令已执行
dotnet publish Project.csproj -c "Release" -o "C:\Publish\App" -r "win-x64" --self-contained false
Run Code Online (Sandbox Code Playgroud)
问题是我如何使用发布配置文件模拟 VS2017 发布网络核心应用程序,因为我遇到了上面指定的问题。
目标输出将是发布没有 aspnetcore dll 但具有远程主机可执行文件的网络核心应用程序。
通过传递,发布配置文件旨在与构建一起使用
-p:DeployOnBuild=true -p:PublishProfile=<ProfileName>
Run Code Online (Sandbox Code Playgroud)
到dotnet build或msbuild。这与“经典”ASP.NET 项目相同。
如果您只需要文件系统部署,则可以dotnet publish改用它,它可以直接创建发布输出到目标位置(Web 部署在内部使用相同的机制,通过发布到临时位置然后复制、压缩等)。
dotnet publish当传递运行时标识符(-r选项)时,将自动创建一个独立的部署。
如果你还想要一个主机 exe 来启动运行时,你也可以使用
dotnet publish -r win-x64 --self-contained false -p:UseAppHost=true
Run Code Online (Sandbox Code Playgroud)
发出一个 .exe 文件,您可以将其用作 Windows 服务而不是path\to\dotnet.exe path\to\app.dll,它仍将使用机器范围的 .NET Core 安装。这可能会也可能不会成为 3.0 中默认输出的一部分。
| 归档时间: |
|
| 查看次数: |
3205 次 |
| 最近记录: |