问题标签 [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.
docker - dotnetcoresdk 容器中的“dotnet publish”命令生成没有详细信息的 EXE
我们正在尝试在容器中构建一个 .NET core 3.1 应用程序,使用具有不同参数的dotnet publish
或dotnet build
命令。dotnet msbuild
成功了,但问题是 EXE 输出从不显示任何文件详细信息(版权、文件版本等为空),而 DLL 确实包含指定的信息。我们尝试了几种不同的容器,以及在线研究并尝试了不同的命令参数,用于版本控制(有一些)。此外,直接在我的 Windows 10 机器上运行相同的 dotnet publish 命令,按预期工作,没有问题。
我还尝试分离dotnet build
和dotnet publish
( --no-build
) 命令并在其间复制代码签名的 EXE,以防存在信任问题,但没有任何效果。
Dockerfile 内容(也用于dotnet publish
代替msbuild
):
重现步骤:
- 创建 Dockerfile,类似上面
- 为 .NET Core 控制台应用程序运行 docker build 命令(替换 abc.csproj)
- 使用容器 ID 运行 docker run 命令
- 将发布内容复制到本地文件系统并查看 EXE 文件详细信息
.net-core - `dotnet publish` 命令创建的“MCD”配置是什么?
当我应用该dotnet publish
命令时,我看到文件夹中创建了三个文件bin
夹:Debug
、Release
和MCD
.
究竟是什么MCD
配置,这个配置是干什么用的?
linux - 将 .NET Core Worker 服务部署到 Linux systemd 服务单元/守护程序的步骤顺序
本文提供了将 .NET Core Worker 服务部署到 linux systemd 服务单元/守护程序的分步指南。感谢作者,我成功地达到了预期的结果。
然而,有一件事我发现在整个过程中违反直觉:在创建.tar
文件之前进行这些预构建清理步骤 - 当最终将在构建覆盖目标中rules
makefile
定义publish
(并且隐含的)命令时。build
我假设dh_make
适用于 a tar
,这就是为什么我们在 a 之前创建它publish
,但如果在执行之后放置清理步骤会不会更好publish
?
谁能澄清一下?
.net - 如何在不创建 web.config / .exe 文件的情况下运行“dotnet publish”?
我在我的应用程序上运行“dotnet publish”命令,它确实创建了一个 web.config 文件和一个 exe 文件。我不会在 IIS 服务器后面运行应用程序,所以我假设这些文件并不是真正需要的。
我无法弄清楚如何使命令不创建这些文件。
项目文件:
目标是创建“依赖于框架的跨平台二进制文件”。如果我理解正确的话。
看起来 .exe 文件对于从此处的文档进行跨平台发布总是“开启” 。也许 web.config 也是如此
.net - 传递 --no-build 时如何跳过 .csproj 中的目标?
如何在运行时停止运行 .csproj 文件中<Exec>
标签中的命令?我可以停止使用整个部分吗?<Target>
dotnet publish --no-build ...
<Target>
样本:
asp.net-core - 通过“dotnet”命令构建或发布,参数/参数指定 windows Authentication=true 和匿名 Authentication=false
以下是有关我们开发环境的详细信息:
DevExpress 20.2.3(我们使用的是 DevExtreme)
Microsoft Visual Studio Enterprise 2019(版本 16.4.6)
ASP.NET 核心 3.1.0
AspNetCore.Mvc 3.1.0.0
Microsoft SQL Server 2008 R2 (RTM) –</p>
dotnet –版本 3.1.300
我们的部署服务器环境详细信息是:
Windows Server 2016 标准 64 位操作系统
dotnet –版本 3.1.300
IIS 版本 10
我们的目标是使用 dotnet 命令行构建和部署/打包:
适用于 .NET Core 的 Microsoft (R) Build Engine 版本 16.6.0+5ff7b0c9e 版权所有 (C) Microsoft Corporation。版权所有。
在 .\PublishedDirectory\appsettings.json 中有以下内容:
在 .\PublishedDirectory\appsettings.Development.json 中有以下内容:
最后在 .\PublishedDirectory\web.config 中,我们有以下内容:
应用程序需要发布和部署以下内容:
窗户认证:真
匿名身份验证:假
D:\AppCodeArena\StrangeAcmeApplication>dotnet build -c Release --runtime win10-x64 .\StrangeAcmeApplication.Uploaders.sln
D:\AppCodeArena\StrangeAcmeApplication>dotnet publish .\src\StrangeAcmeApplication.Uploaders\StrangeAcmeApplication.Uploaders.csproj --runtime win10-x64 --no-build -c Release --output .\PublishedDirectory /p:DebugType=None /p :DebugSymbols=false /p:EnvironmentName=Development --self-contained true
有人可以告诉我如何使用带有参数/参数的“dotnet”命令构建或发布应用程序,这些参数还指定以下内容?
窗户认证:真
匿名身份验证:假
c# - 无法公证 .net 核心应用程序以供 macOS 使用
我正在尝试对我的 .net 核心应用程序进行公证以在 MacOS 设备中运行,当我对其进行公证时,我得到了错误
可执行文件未启用强化运行时
如果我将--options=runtime
标志添加到我的签名操作中,我的控制台应用程序将停止工作。我在 dotnet 文档中发现您必须将以下权利添加到您的应用程序主机。
- com.apple.security.cs.allow-jit
- com.apple.security.cs.allow-unsigned-executable-memory
- com.apple.security.cs.allow-dyld-环境变量
- com.apple.security.cs.disable-library-validation
但我不知道在哪里添加它们,我尝试在我的输出目录中添加一个 entitlements.plist 文件,其中包含以下内容:
但它仍然失败。这是我必须添加到发布过程中的东西吗?
.net - dotnet publish 中的 out 是什么意思?
在本文中,我找到了一种加速 docker build 命令的方法
https://www.softwaredeveloper.blog/optimize-building-net-core-docker-image
此命令缓存 nuget 依赖项
RUN dotnet publish -c Release -o out
我只是无法理解输出的含义,它应该是一条路径,但运行这样的命令失败,因为
COPY --from=publish out .
不起作用。如何在我的 docker 文件中使用它?
c# - Dotnet 发布到同一文件夹
当使用不同的独立.csproj 项目构建/发布到同一个文件夹时,预期的行为是什么dotnet publish
?
想象一下,Alpha.csproj
可能需要 1.0.0 的 NuGet 包foo
,并且该项目Bravo.csproj
可能需要相同 NuGet 依赖项的 2.0.0 版本。我担心的是,dotnet publish
对这些不同项目的两次单独调用,指向同一个目标文件夹,将导致foo
依赖项被覆盖......从而破坏部署。
我知道 NuGet 经常将其二进制文件存储在子文件夹中,通常以版本号来区分,但它也很常见将依赖项直接放在主发布文件夹中。因此,从表面上看,存在意外冲突的空间。
到目前为止,我解决这个预期问题的方法是将两个项目放入同一个解决方案中,然后发布解决方案。我认为单个发布命令足够聪明,可以解决差异(将不同的依赖版本存储foo
到不同的子文件夹中)。但是,如果这些项目处于不同的解决方案中怎么办?
我说“预期”的问题是因为我实际上并没有花时间尝试它。我的期限很紧,无法处理运行时出现的潜在隐蔽错误;我不想“艰难地”发现我的问题的答案。
了解这种动态对我来说尤其重要,因为我正在构建 .Net Core 3.1 插件,我想将其发布/部署到现有的框架文件夹。该应用程序旨在扫描新插件并加载它们。