问题标签 [dotnet-build]
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.
visual-studio - 如何根据操作系统从构建中排除 .NET 5.0 项目
我们有一个包含多个 .NET 5.0 项目的 Visual Studio 解决方案,其中一个是Windows Application
( TargetFramework
is net5.0-windows
)。它显然无法在 Linux 和 Mac 上构建。根据操作系统,我们如何使它能够构建或不构建?我们需要支持的场景有:
- 从 Windows 上的 Visual Studio 构建。
- 在 Windows 和 Mac 上从 JetBrains Rider 构建。
- 在 Windows、Mac 和 Linux 上从命令行构建。对于我们目前使用的命令行,
dotnet build
以及首先构建解决方案的方法。dotnet test
dotnet pack
localization - Blazor 服务器 - 运行 dotnet publish --configuration release 时输出文件夹中缺少本地化 dll (xxx.resources.dll)
我有一个带有 2 个本地化资源文件的 blazor 服务器应用程序,其名称如下:App.no.resx 和 App.resx,但是当使用以下命令进行 dotnet 发布时,这些文件丢失了,
但是当从 VS2019 运行构建时,资源 dll 在“no”文件夹中生成
注意 - 两个本地化资源文件都设置为“嵌入式资源”和“请勿复制”
有人可以告诉我如何解决这个问题吗?
.net - dotnet 构建在容器内失败
尝试在标准 CI/CD 流的容器中执行 dotnet 构建时,我遇到了一个非常烦人的问题。这些问题似乎是“随机”发生的(从 Jenkins 运行时,平均大约 4/10 的构建失败,而两者之间的代码或配置没有任何更改)。我遇到的问题(在下面的堆栈跟踪中出现的问题似乎有点随机):
- MSB4018:CreateAppHost 任务意外失败 - 最常发生
- MSB4018:GenerateDepsFile 任务意外失败
- NETSDK1029:无法使用 .../apphost 作为应用程序主机可执行文件,因为它不包含预期的占位符字节序列 - 我个人最喜欢 :)
关于现在,我想我已经浏览了所有的搜索结果,但到目前为止没有一个答案有帮助 - 所以也许在这里我会很幸运(并希望在此过程中帮助某人)。
技术数据:
Jenkins 代理
在 RHEL 8.4 和 Podman v. 3.2.3 上运行
容器数据
操作系统 - RHEL7.9 和 RHEL8.4(我都尝试过)使用来自 Jenkins 代理的挂载卷运行(包含从存储库克隆的源代码的目录)。基本 Dockerfile 设置,我使用内部存储库中的 RHEL8 基本映像 - RHEL7 是通过安装 scl-utils 等进行修改的,但总体思路是相同的
.NET 数据
使用 dotnet core 3.1 SDK
当我尝试运行 dotnet 构建时会出现这些问题。Jenkinsfile 首先在第一阶段删除所有 bin/ 和 obj/ 目录,然后为应用程序调用构建。
我尝试过的最有希望的事情:
- 有人建议需要完全删除文件夹 bin/ 和 obj/ - 这发生在运行前的第一阶段
- 我尝试将 dotnet publish 命令拆分为:
... 使用dotnet build直接在构建中随机抛出这 3 个错误之一
我尝试使用不同的标志调用 dotnet 构建,例如“不并行”,认为线程可能是某种根本原因(我收到很多“进程无法访问文件,因为它正被另一个进程使用”警告 - 但这些发生了对于成功的构建 - 默认的 dotnet 重试似乎正在处理那些
有人知道我可能会错过什么吗?CI/CD 管道之前直接在 RHEL7.7 代理上运行(不使用容器)。现在我们想使用新版本的 RedHat 迁移到容器化构建 - 但这些随机重复出现的问题阻碍了我,所以如果有人有任何建议 - 非常感谢;)
.net - 在 netstandard2.0 和 4.7.2 的解决方案中,dotnet 构建失败并出现“类型或命名空间名称...不存在”
我有一个包含两个项目的解决方案,一个针对 4.7.2,一个针对 netstandard2.0。我可以在 Visual Studio 2019 中很好地构建解决方案。但是,当我运行dotnet build MySolution.sln
它时,它会失败,并出现与该项目中引用的 nuget 包相关的一些“命名空间类型 ... 不存在”错误。
所有源代码都可以在https://github.com/marknadig/TestBuild获得。
第一个项目“MyService”是一个 .net 4.7.2 类库项目。
如您所见,MyService 项目引用了针对“netstandard20”的 AuthenticatorService 项目。
dotnet --version
报告5.0.402
如何让 dotnet build 构建?