【问题标题】:Is it possible to set a display-name in task manager for a .NET Core web application?是否可以在 .NET Core Web 应用程序的任务管理器中设置显示名称?
【发布时间】:2019-01-03 13:10:28
【问题描述】:

我有一个 .Net Core 2.0 Web 应用程序,我希望在任务管理器中显示名称。目前显示.NET Core Host

我找到了this question,但不幸的是,无法更改程序集信息,因为这个窗口甚至没有显示(我认为这是因为它是 .NET Core 2.0 应用程序而不是 .NET Framework 4。 x 应用程序)。

还有其他方法可以在任务管理器中显示应用程序的标题吗?

【问题讨论】:

  • 不,这是不可能的。 Taskmanager 完全忽略了 .NET,只显示了正在运行的可执行文件的名称。您看到的是dotnet.exe 的“显示名称”,它是用于运行.NET 核心(控制台)应用程序的存根,它实际上只是一个DLL。带有 .NET 3.0 BTW 的 (can) changes(搜索“应用程序现在默认具有可执行文件”)。
  • 您在任务管理器中看到的不是任何显示名称,而是应用程序主窗口的标题,或者如果没有窗口则它的可执行文件名称。如果您使用 dotnet run,则应用程序是 .NET Core 主机。
  • @RandRandom 我已经设置了标题,但这只会更改打开的控制台的标题,不幸的是不会更改任务管理器的标题。
  • 此功能已被请求并在github.com/dotnet/runtime/issues/2688 与里程碑 3.0 进行跟踪

标签: c# windows visual-studio


【解决方案1】:

我设法通过在 .net core 3.1 的 .csproj 文件中设置 AssemblyTitle 值来设置显示名称:

.csproj

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
    <AssemblyName>Hello World</AssemblyName>
    <AssemblyTitle>Display Name</AssemblyTitle>
    <OutputType>WinExe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>
</Project>

【讨论】:

  • 不错。这样,您可以为二进制文件等定义一个名称 (AssemblyName),并为显示定义另一个名称 (AssemblyTitle)。
【解决方案2】:

如果您从 dll 运行应用程序 - 不,没有办法,因为需要 DotnetCore-Hosting-Process 来运行它。

如果您将应用程序部署为 self-contained application,它将显示您将 AssemblyName/Executable 设置为的名称:

.csproj:

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
    <AssemblyName>Hello World</AssemblyName>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>
<PropertyGroup>
   <RuntimeIdentifiers>win10-x64</RuntimeIdentifiers>
</PropertyGroup>
</Project>

还请阅读发布独立应用的后果here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    • 1970-01-01
    相关资源
    最近更新 更多