Visual Studio 2017 ASP.Net 发布自包含的点网核心应用

Posted

技术标签:

【中文标题】Visual Studio 2017 ASP.Net 发布自包含的点网核心应用【英文标题】:Visual Studio 2017 ASP.Net Publish Self-Contained Dot Net Core App 【发布时间】:2017-05-02 00:57:40 【问题描述】:

我在 Visual Studio 2017 中有一个 .Net Core ASP.Net 应用程序。我正在尝试对应用程序进行自包含部署。

如果我从 CLI 运行以下命令,它会完全按照我的意愿运行并生成一个 .exe

dotnet publish -c release -r win7-x64

但是,如果我从 Visual Studio 2017 发布,它不会生成 .exe,而是生成 .dll。

如何从 Visual Studio 2017 中复制 dotnet publish 命令的 -r win7-x64?

这是我的 .pubxml 的内容

<?xml version="1.0" encoding="utf-8"?>
<!--
This file is used by the publish/package process of your Web project. You can customize the behavior of this process
by editing this MSBuild file. In order to learn more about this please visit https://go.microsoft.com/fwlink/?LinkID=208121. 
-->
<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>
    <PublishFramework>netcoreapp1.1</PublishFramework>
    <ProjectGuid>74bc47dd-6787-420d-804f-3f3d689d5ae5</ProjectGuid>
    <publishUrl>C:\Deploy\JLM.MS.LeadGen.Dealer</publishUrl>
    <DeleteExistingFiles>True</DeleteExistingFiles>
    <RuntimeIdentifiers>win7-x64</RuntimeIdentifiers>
  </PropertyGroup>
</Project>

【问题讨论】:

你也可以分享你的csproj吗? 【参考方案1】:

此体验已添加到 Visual Studio 2017 版本 15.3 的发布窗口(可下载 here)

如果您右键单击您的项目 -> 发布 -> 单击“摘要”下的“设置...”链接 -> 转到“发布”窗口的“设置”选项卡,您应该会看到一个目标运行时下拉列表,您可以在其中看到选择您希望应用在哪个平台上运行。 Here's 我正在谈论的截图。

确保在您的项目文件中包含您要在&lt;RuntimeIdentifiers&gt;&lt;RuntimeIdentifier&gt; 中选择的运行时,因为下拉列表会查找这些属性以填充其值。

【讨论】:

【参考方案2】:

你需要添加

<OutputType>Exe</OutputType>

到你的 .csproj

【讨论】:

它已经在我的 .csproj 中了。我需要将它添加到我的 .pubxml 吗? 我不这么认为。添加输出类型或运行时标识符后是否运行dotnet restore 是的,我确实做了 dotnet restore 我会尝试将OutputType 添加到.pubxml 中,看看是否可行。如果不是,这一定是 Visual Studio 中的工具疏忽。如果您不知道可以使用命令dotnet myapp.dll 运行该应用程序。你不必有一个exe。也许他们通过输出 dll 而不是只能在 Windows 上运行的 exe 来针对 Visual Studio 发布中的最低公分母。

以上是关于Visual Studio 2017 ASP.Net 发布自包含的点网核心应用的主要内容,如果未能解决你的问题,请参考以下文章

Visual studio 2017怎么注册激活

visual studio 2017没法安装,总在visual studio installer界面闪推

visual studio2017 添加dll库

Visual Studio 2017 中的 Visual Studio 2010

在 Visual Studio 2015 中打开 Visual Studio 2017 项目

visual studio2017社区版如何空格操作?