问题标签 [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.
.net - 由于相对路径,在 Docker 容器中运行 dotnet 在 Linux 上失败
我有一个 Dockerfile 构建应用程序并将其发布到这样的容器
构建映像和运行容器在 Windows 上工作,但在 Ubuntu 服务器上不工作。
我认为问题在于为dotnet
as指定参数../Project.dll
,因为 shell 将其扩展为/Project.dll
dotnet 不理解 Linux 路径。有没有办法来解决这个问题?
我是 Docker 的初学者,也许我遗漏了一些东西(Docker 不应该在每个平台上都一样吗?)
编辑:dotnet Project.dll
在父目录内的容器中从 bash 运行会产生相同的输出
.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 版本?
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。谁能让我知道问题可能是什么?
c# - 将项目转换为 NETSDK 格式后表单中的资源异常
我正在缓慢地迁移到 .NET5,但之前的步骤之一是将我们所有的 WinForms 项目转换为 NET-SDK 项目格式。
此转换已完成,一切似乎都正常,但我遇到了一些问题。
一些使用资源的表单现在会抛出异常
我已经通过手动将资源项添加到 csproj 文件来解决其中的一些问题,所以我必须添加类似
它解决了那个表单的问题,但是对于数百个表单,这将是一个巨大的痛苦......有没有更好的方法来处理 NET-SDK 格式项目中的所有这些表单资源文件?
.net - Azure Pipeline 在 `dotnet build` 上失败,并出现错误“找不到命令或文件”
最近我的 Azure Pipeline 构建开始失败,而我的构建脚本/yaml 没有任何更改。错误如下,但它们仍然很清楚细节。
为了获得更多信息,我还添加了--verbosity detailed
构建步骤,其中显示了以下详细信息。
因此,在尝试使用msbuild 响应文件时,构建似乎失败了。但是,这似乎是一个内部问题,而不是我的命令的问题。我不太了解内部如何dotnet build
使用msbuild
。
日志中还有一条警告和一条信息行。但是,它们不应该适用,因为我正在使用 dotnet cli 进行恢复,并且我正在UseDotNet
使用3.1.409
在global.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>
作为可执行文件查找。
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
。
欢迎任何指点。
c# - EF 6.4 单元测试对框架运行正常,但 dotnet 5.0 找不到我的连接字符串
我的域对象在一个 SDK 风格的项目中,并以 net472 和 net5.0 为目标,我的实体层和单元测试项目也是如此。一切都编译得很好。
对于我声明的每个 TFM,测试资源管理器正确地显示了重复的测试。但是 net5.0 测试失败,声称没有连接字符串。我有一个文件App.config
和一个appsettings.json
文件..但不确定此时我缺少什么。
单元测试项目源
应用设置.json
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
我使用了环境变量
管道
尽管有所有这些,它仍然会抛出此错误消息:
c# - 如何使用 Azure.Net SDK/Fluent API 调整虚拟机磁盘大小
我想调整我的操作系统磁盘空间,但得到“仅在创建 VM 或解除分配 VM 时才允许调整磁盘大小”。
c# - HelloSign API - 如何在没有内置模板的情况下创建动态文档
我想使用自定义字段创建嵌入式 Hello Sign 签名文档,但不使用模板。有什么办法吗?
情况是,我必须在一个动态系统生成的文档上签名。所以不能使用现有的默认模板,而必须使用文件代替它。但是在生成的文档上,我需要一个字段,例如客户名称 - 这是一个文本框,但由签名者姓名预先填写,并且客户在签署文档之前根据他的选择更改该文本框的值。我已经尝试过所有的事情,比如使用自定义字段(但如果不使用预定义模板则不允许)、FormFieldsPerDocument(它提供文本框但不允许在生成签名文档之前设置值)、文本标签等。
这是我的实现代码片段
我已经尝试了 API 文档中所有可能的方法,但无法找到正确的解决方案。如果可以通过任何其他方法处理这种情况,请为我提供一种方法,或者如果我在此代码片段中犯了任何错误,请引起我的注意。