问题标签 [dotnet-sdk]

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 回答
130 浏览

.net - 由于相对路径,在 Docker 容器中运行 dotnet 在 Linux 上失败

我有一个 Dockerfile 构建应用程序并将其发布到这样的容器

构建映像和运行容器在 Windows 上工作,但在 Ubuntu 服务器上不工作。

我认为问题在于为dotnetas指定参数../Project.dll,因为 shell 将其扩展为/Project.dlldotnet 不理解 Linux 路径。有没有办法来解决这个问题?

我是 Docker 的初学者,也许我遗漏了一些东西(Docker 不应该在每个平台上都一样吗?)

编辑:dotnet Project.dll在父目录内的容器中从 bash 运行会产生相同的输出

0 投票
1 回答
5041 浏览

.net - Windows 或 Visual Studio 找不到最新安装的 .NET SDK

我已成功安装最新的 .NET SDK,但 Windows 无法识别它。这表现为以下故障之一:

  • dotnet --list-sdks 不包括最新的 .NET SDK。
  • Windows x64 找不到 .NET 5 或 .NET 6。
  • Visual Studio 在尝试打开项目时找不到最新的 SDK 或引发以下错误之一:
    • 项目“MyProject”加载失败:找不到指定的 SDK“Microsoft.NET.Sdk”。

    • 找不到 .NET SDK。检查它是否已安装并且 global.json 中指定的版本(如果有)与安装的版本匹配

    • 当前的 .NET SDK 不支持针对 .NET Core NN 以 .NET Core NM 或更低版本为目标,或者使用支持 .NET Core NN 的 .NET SDK 版本

如何让 Windows 识别最新安装的 .NET SDK 版本?

0 投票
2 回答
82 浏览

visual-studio - 构建机器上的.Net类库编译错误

我有一个 SDK 风格的 .Net 类库,可以在我的本地机器上正确编译,但是在构建服务器上失败。

.csproj 的内容是

显示的错误是:NETSDK1045:当前的 .NET SDK 不支持面向 .NET Standard 4.0。以 .NET Standard 2.1 或更低版本为目标,或者使用支持 .NET Standard 4.0 的 .NET SDK 版本

我在构建服务器上安装了 .NET Core 3.1.113,在本地机器上安装了 .NET 5。

注意:如果我netstandard1.0从 TargetFrameworks 中删除,那么两台机器上的构建都会成功。但是,我希望我的库也以 .net 标准 1.0 为目标。

我不明白为什么 v4.0 在构建服务器上被视为 .NET Standard 4.0。谁能让我知道问题可能是什么?

0 投票
1 回答
119 浏览

c# - 将项目转换为 NETSDK 格式后表单中的资源异常

我正在缓慢地迁移到 .NET5,但之前的步骤之一是将我们所有的 WinForms 项目转换为 NET-SDK 项目格式。

此转换已完成,一切似乎都正常,但我遇到了一些问题。

一些使用资源的表单现在会抛出异常

我已经通过手动将资源项添加到 csproj 文件来解决其中的一些问题,所以我必须添加类似

它解决了那个表单的问题,但是对于数百个表单,这将是一个巨大的痛苦......有没有更好的方法来处理 NET-SDK 格式项目中的所有这些表单资源文件?

0 投票
1 回答
853 浏览

.net - Azure Pipeline 在 `dotnet build` 上失败,并出现错误“找不到命令或文件”

最近我的 Azure Pipeline 构建开始失败,而我的构建脚本/yaml 没有任何更改。错误如下,但它们仍然很清楚细节。

为了获得更多信息,我还添加了--verbosity detailed构建步骤,其中显示了以下详细信息。

因此,在尝试使用msbuild 响应文件时,构建似乎失败了。但是,这似乎是一个内部问题,而不是我的命令的问题。我不太了解内部如何dotnet build使用msbuild

日志中还有一条警告和一条信息行。但是,它们不应该适用,因为我正在使用 dotnet cli 进行恢复,并且我正在UseDotNet使用3.1.409global.json

文件内容global.json

在构建管道中,包在构建之前的单独步骤中恢复。还有一个项目 (dbup) 在完整构建 (dotnet build) 成功之前构建。虽然完整的构建步骤失败。我已经包含了azure-pipelines.yml文件中的相关步骤。

到目前为止,我已经尝试使用不同的 SDK 版本(3.1.406 和 3.1.409),并且我已经检查了警告和信息消息中的所有建议。还值得注意的是,该项目确实dotnet build在本地成功构建。解决方案目标中的所有项目netcoreapp3.1

我认为问题是由于我正在使用的图像更新造成的,vmImage: 'windows-latest'但是我看不到任何问题并且我已经没有想法了。


更新

Microsoft.FSharp.Targets(279,9)中的文件和行号似乎表明这是调用 FSharp 编译器的问题。

这也与 vs 开发者社区中无法使用 dotnet build 构建 fsharp 项目的问题一致。该线程包含以下相关部分,但它没有说明为什么或如何$(PathToFsc)可能为空。

现有的错误信息准确地传达了问题;它不是 F# 特定的。.props/.targets 文件中的某些内容评估为dotnet $(PathToFsc) some/file.rsp,并且变量$(PathToFsc)(或构建脚本中的任何内容)评估为空字符串。然后执行的最终命令是dotnet some/file.rsp正常的 dotnet 行为是dotnet-<argument>作为可执行文件查找。

0 投票
0 回答
33 浏览

c# - 将任务输出传递给 Microsoft.NET.Sdk 的 Version 属性

我正在尝试Directory.Build.*为我的 SDK 样式文件编写一个csproj文件。它应该注入一个通用产品版本(来自VERSION.txt)并向其中添加 git 哈希。

我只有关于 MSBuild 的基本知识,我知道如何查找 SDK 使用的属性,并且这些属性首先在评估阶段设置。我还在文档中找到了属性函数和目标定义。

对于此工作示例,该csproj文件仅包含:

以下Directory.Build.props只有评估阶段的东西在做时有效dotnet build /p:VcsDesc=123

为了自动检索VcsDesc我尝试定义一个目标

当我将其定义为InitialTargets="Foo"onDirectory.Build.props或添加DependsOnTargets="BeforeBuild". 我知道它会被执行,因为我看到了带有正确输出的消息git。但是 SDK 没有选择该属性(我发现它在生成的 NuGet 规范中丢失了)。

我试过了

  • 使用Directory.Build.targets而不是Directory.Build.props
  • 设置最终以默认 1.0.0 版本结束Version的目标内部Foo
  • Outputs从目标中移除
  • DependsOnTargets="Build"代替BeforeBuild

我认为我执行目标太早了,但我不知道在哪里可以找到合适的目标DependsOnTargets

欢迎任何指点。

0 投票
0 回答
21 浏览

c# - EF 6.4 单元测试对框架运行正常,但 dotnet 5.0 找不到我的连接字符串

我的域对象在一个 SDK 风格的项目中,并以 net472 和 net5.0 为目标,我的实体层和单元测试项目也是如此。一切都编译得很好。

对于我声明的每个 TFM,测试资源管理器正确地显示了重复的测试。但是 net5.0 测试失败,声称没有连接字符串。我有一个文件App.config和一个appsettings.json文件..但不确定此时我缺少什么。

单元测试项目源

应用设置.json

0 投票
0 回答
90 浏览

jenkins - Jenkins 入站代理 dotnetsdk ICU 问题

我在从入站詹金斯代理构建 dotnet 解决方案方面遇到了一些困难。每次,我运行编译器都认为缺少 ICU 包的链。

从互联网上,我确实找到了一些解决方法:

  • 在编译之前设置一个特定的环境变量 export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1
  • 在您的 .csproj 中,将 InvariantGlobalization 设置为 true 链接链接
  • 安装 ibicu63,它是 debian链接的 icu 包

我尝试了所有解决方案,但没有一个有效......

我在镜像中安装了 icu 包

自定义入境代理 IMG #1

自定义入境代理 IMG #1

我将 invariantGlobalization 设置为 true

CSPROJ

我使用了环境变量

管道

尽管有所有这些,它仍然会抛出此错误消息:

0 投票
1 回答
68 浏览

c# - 如何使用 Azure.Net SDK/Fluent API 调整虚拟机磁盘大小

我想调整我的操作系统磁盘空间,但得到“仅在创建 VM 或解除分配 VM 时才允许调整磁盘大小”。

0 投票
1 回答
102 浏览

c# - HelloSign API - 如何在没有内置模板的情况下创建动态文档

我想使用自定义字段创建嵌入式 Hello Sign 签名文档,但不使用模板。有什么办法吗?

情况是,我必须在一个动态系统生成的文档上签名。所以不能使用现有的默认模板,而必须使用文件代替它。但是在生成的文档上,我需要一个字段,例如客户名称 - 这是一个文本框,但由签名者姓名预先填写,并且客户在签署文档之前根据他的选择更改该文本框的值。我已经尝试过所有的事情,比如使用自定义字段(但如果不使用预定义模板则不允许)、FormFieldsPerDocument(它提供文本框但不允许在生成签名文档之前设置值)、文本标签等。

这是我的实现代码片段

我已经尝试了 API 文档中所有可能的方法,但无法找到正确的解决方案。如果可以通过任何其他方法处理这种情况,请为我提供一种方法,或者如果我在此代码片段中犯了任何错误,请引起我的注意。