问题标签 [dotnet-publish]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
313 浏览

c# - Linux 容器上的 dotnet publish --self-contained 选项

有两种方法可以在基于 Linux 的容器上运行 .net 核心应用程序。

  1. 获取安装了 .net 核心框架(在 Linux 映像之上)的基础映像,然后使用 dotnet publish 复制代码。

  2. 使用 Linux 基础映像,然后使用dotnet publish --self-contained选项复制 dot net 运行时和代码。

    --自包含 [true|false]

    与您的应用程序一起发布 .NET 运行时,因此不需要在目标计算机上安装运行时。如果指定了运行时标识符并且项目是可执行项目(不是库项目),则默认值为 true。

    使用一个选项比其他选项有什么优势吗?

0 投票
1 回答
38 浏览

.net - 通过 dotnet build 使用来自工件存储库的外部依赖项

我们正在使用 dotnet publish 命令来执行构建项目以及发布二进制文件。以下命令用于此目的?

我们还想使用在构建过程中推送到 Nexus 的包中的一些依赖二进制文件。在 dotnet publish 命令期间指定依赖项并使用该依赖项构建项目的最佳方法是什么

0 投票
1 回答
236 浏览

asp.net-core - 在 ASP.NET Core 6 中,为什么 System.Private.ServiceModel.resources.dll 的已发布输出中需要语言文件夹以及如何消除它们?

在 ASP.NET Core 6 中,当发布为自包含的 win-x86 网站时,会在发布文件夹中创建一堆语言文件夹。

在此处输入图像描述

这些文件夹包含一个 dll,即System.Private.ServiceModel.resources.dll. 据我所知,这些文件夹在 Asp.NET 5 中不存在,它们为我不希望拥有的部署添加了混乱/噪音。

System.Private.ServiceModel.resources.dll您能解释一下为什么此类部署需要所有这些本地化版本吗?另外,由于我的网站只有英文,我可以安全地删除所有语言文件夹(即 cs、de、es、fr、it、ja、ko、pl、pt-BR、ru、tr、zh-Hans、zh-汉特)?最后,有没有更好的方法让这些消失?例如某个地方的一些配置?

0 投票
0 回答
64 浏览

.net-core - 如何从发布的剃须刀类库中删除 staticwebassets?不工作

我的 asp.net core 6 项目正在引用一个 blazor nuget 库,该库在运行时复制一些文件以发布输出目录dotnet publish

我想阻止某些文件被发布。

ResolvedFileToPublish但是从yarget 之后删除这些文件ComputeFilesToPublish不起作用。

0 投票
1 回答
1007 浏览

c# - error NETSDK1031: It is not supported to build or publish a self-contained application without specifying a RuntimeIdentifier

I am running following command to publish .NET CORE 5.0 web api project using command line on windows 10 box.

But I am getting following error:

C:\ProgramFiles\dotnet\sdk\5.0.403\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(126,5): error NETSDK1031: It is not supported to build or publish a self-contained application without specifying a RuntimeIdentifier. You must either specify a RuntimeIdentifier or set SelfContained to false. [c:\test\Service\emp.csproj]

Why I am getting this error when I am specifying --runtime flag? I am able to publish using Visual Studio without any issues.

0 投票
1 回答
83 浏览

asp.net - Asp.Net Core 5.0 Deploy by Plesk Panel 问题

我正在尝试通过 plesk 面板部署我的 .net 5.0 目标框架项目。当我在我的本地系统中以调试模式连接 plesk 面板的数据库时,网站工作得很好。我的迁移自动发送到数据库并创建了表。但是当我发布我的项目时,它给出了500.30错误。

由于我只能访问一个面板,因此我无法查看Windows Event Viewer或任何与错误详细信息相关的内容。

我试图通过以下方式获取详细信息startup.cs

但它仍然只显示 500.30 页。

我试过了Program.cs

但它再次只显示 500.30 页面。

我认为这可能是一个框架版本问题,并试图发布我的项目自包含以避免错误(plesk 面板使用 32 位窗口):

但这也无济于事。

我知道这个错误可能是由很多原因引起的。我只需要查看错误的详细信息即可修复它。希望您能够帮助我。

感谢大家花时间阅读本文。

0 投票
1 回答
128 浏览

c# - 无法运行自包含的 .net core 5.0 应用程序

我有一个 .NET core 5.0 ASPNET Web API 应用程序。此应用程序在 Visual Studio 本地完美运行。

现在我正在尝试使用以下命令发布自包含应用程序:

我正在尝试在 Red Hat Linux 映像上运行它(下面的图像详细信息):

这就是我的 docker 文件的样子:

当我运行这个图像时,我得到错误:。/testdb.dll: 无法执行二进制文件

我不确定这是否是由于我在发布命令期间指定的无效运行时或其他原因。

0 投票
0 回答
33 浏览

github-actions - Github actions dotnet publish error MSB1008: Only one project can be specified

我为一个带有 github 操作的项目配置了 CD,当它在 bash shell 中调用命令时发生了一个意外错误

dotnet publish --runtime win64 ...

托管跑步者的有趣之处在于ubuntu-latest它运行良好。

这个问题也有类似的问题,但我不知道如何将它与这个场景集成。

有什么想法吗?

感谢帮助

释放.yml

github 动作发布截图

0 投票
1 回答
115 浏览

.net - 使用 Microsoft.NET.Sdk.Web 作为库项目时的发布限制

当我从 .NET 模板创建 ASP.NET Core 托管的 Blazor 应用程序时,我得到如下信息:

  • WebHost项目(Microsoft.NET.Sdk.Web,Exe 输出类型)
  • BlazorApp项目(Microsoft.NET.Sdk.BlazorWebAssembly,Exe 输出类型)

我可以轻松地dotnet publishWebHost项目上运行,并将获得一个托管 Blazor Web 应用程序所有内容的可执行文件。

因此,如果我想添加一个服务器配置 UI,例如使用 WPF,我最终会得到这样的结果。(WebHost 项目现在是一个库,由 ServerUI 使用/引用)

  • 服务器界面项目
    • Microsoft.NET.SdkUseWPF设置一起使用true
    • OutputType被设定为WinExe
    • 旨在成为(服务器)应用程序入口点的顶级项目
    • 包含用于设置服务器的图形用户界面(例如端口、身份验证等)
    • 参考WebHost项目
  • 网络主机项目
    • 用于Microsoft.NET.Sdk.Web访问 ASP.NET Core 运行时
    • OutputType被设定为Library
    • 包含 ASP.NET Core 托管的所有代码
    • 参考BlazorApp项目
  • BlazorApp项目
    • 用途Microsoft.NET.Sdk.BlazorWebAssembly
    • OutputType设置为Exe(默认)
    • 包含要在浏览器中运行的所有 Blazor Web 应用程序内容

如果我现在dotnet publishServerUI项目上运行,我最终会得到一个可执行文件,该可执行文件显示用户界面并拥有 ASP.NET Core 托管内容,但访问 Blazor Web 应用程序将失败,因为wwwroot文件夹不会以这种方式发布。

现在有两种方法可以解决我知道的这个问题:

  • 要么你让ServerUI也使用Microsoft.NET.Sdk.Web
  • 或者您将WebHostBlazorApp项目显式发布到与ServerUI项目相同的文件夹中。

这让我想到了一个问题,它实际上是否可以Microsoft.NET.Sdk.Web用于图书馆项目,如果可以,有什么限制。

重现步骤

  • 克隆这个repo
  • 在签出文件夹中打开终端
  • dotnet publish ServerUI -o bin\publish
  • wwwroot目录中将缺少文件bin\publish
  • 相比之下,运行dotnet run --project ServerUI仍将按预期工作,因为它不依赖于发布行为
0 投票
0 回答
26 浏览

.net - dotnet 使用 SolutionDir 参考发布特定项目

我正在尝试发布作为解决方案一部分的特定项目。解决方案中的许多项目都有取决于$(SolutionDir)值的设置,但是当命令行仅指向.csproj文件而不是.sln

有没有办法注入一个$(SolutionDir)在这种情况下使用的值?