问题标签 [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 回答
248 浏览

c# - .NET CORE CLI - 从文件中加载参数吗?

我正在使用.net cli 2.0.3,我想知道是否可以从文件中加载我的参数,即

dotnet publish -args somefile

Wheresomefile将包含某个命令接受的参数。例如,在发布时我想要预定义path\project.csproj -c Release -o "outputpath"

我知道 sdk 中没有那种命令,但是有没有办法可以实现它?

此致!

0 投票
1 回答
831 浏览

c# - Msbuild v15 无法解析 nuspec 文件元数据的变量

我知道自从 msbuild 15(与 2017 年相比)发布以来,NuGet 现在已完全集成到 MSBuild 中。

我有一个 nuspec 文件,其中定义了包属性的变量,例如:

nuspec 文件位于项目的同一文件夹中。

使用 nuget 工具创建包时,它工作正常。

使用 msbuild v15 时,它会引发异常。

运行命令:

Microsoft (R) Build Engine 版本 15.8.168+ga8fba1ebd7 用于 .NET Framework 15.8.168.64424

引发异常:

C:\Program Files\dotnet\sdk\2.1.402\Sdks\NuGet.Build.Tasks.Pack\build\NuGet.Build.Tasks.Pack.targets(199,5):错误:值不能为空或为空细绳。

奇怪的是 dotnet sdk 版本 2.1.402 引发了异常。

我尝试使用 vs2017 安装 msbuild 及其路径,它也引发了相同的异常。

当我用它的值替换变量时,msbuild 工作正常。

问题

这是 msbuild 版本 15.8.168.64424 中的错误还是我错过了什么?

换句话说,msbuild 是否支持使用包的元数据变量?

0 投票
0 回答
147 浏览

msbuild - Visual Studio 如何在解决方案资源管理器中填充“依赖项”节点

我正在编写自定义 MSBuild 目标,它在特定条件下替换了一些<PackageReference>for 。<ProjectReference>

我有以下 msbuild 目标:

而且我的项目引用在 Visual Studio 依赖项中是不可见的。但是,项目按预期编译。

我发现当目标在之前运行时<ItemGroup><PackageReference>内部目标受到尊重CollectPackageReferences。但是,我无法填写<ProjectReference>任何目标,即使是第一个目标。

Visual Studio 如何使用解决方案项目填充依赖项?

0 投票
0 回答
528 浏览

win-universal-app - 多目标项目引发目标“_GetRestoreSettingsPerFramework”不存在

我正在尝试将我现有的 C# 项目之一更新为新的 Microsoft.NET.Sdk 项目结构。该解决方案由 net45、netstandard1.0 和 uap10.0 项目组成。

  • 当我从 NuGet 包管理器控制台运行“ dotnet build ValueConverters.sln ”时,我收到以下错误:错误 MSB4057:项目中不存在目标“_GetRestoreSettingsPerFramework”。

  • 当我使用 MSBUILD 在 Visual Studio 中构建相同的 ValueConverters.sln 解决方案时,一切正常。

可以在这里找到解决方案: https ://github.com/thomasgalliker/ValueConverters.NET/tree/develop

我究竟做错了什么?当我从 TargetFrameworks 中删除 uap10.0 时,它就像一个魅力。

0 投票
2 回答
552 浏览

csproj - 多目标netstandard1.0和netstandard2.0并排?

当我创建一个针对 netstandard1.2、netstandard2.0 和 net45 的多目标 .NET csproj 时,我是否必须在 .csproj 部分中包含两个 netstandard 名字对象,或者仅提及 netstandard1.2 就足够了(较低的网络标准版本)?

建议一:

<TargetFrameworks>netstandard1.2;net45</TargetFrameworks>

提案 B:

<TargetFrameworks>netstandard1.2;netstandard2.0;net45</TargetFrameworks>

0 投票
1 回答
1040 浏览

docker - 如何使用 dotnet sdk linux docker 映像和从 Windows 10 安装的卷运行 dotnet restore?

我正在使用最新的 microsoft/dotnet sdk 映像 ( ) 建立一个非常简单的 .NET Standard 项目microsoft/dotnet:2.2.104-sdk-alpine3.8

这是为了将现有代码和现有构建基础架构迁移到新的存储库和构建基础架构(GitLab(在这里并不重要))。

新的构建基础设施当然是利用 Docker。但我还需要能够使用 Docker 在我的本地 Windows 10 上构建(需要这个来证明软件也可以在没有 GitLab 的情况下构建,而不依赖于特定的构建计算机)。

我尝试的是简单地将我的项目文件夹挂载到 docker 映像,然后运行dotnet restore​​. 我正在以交互方式进行操作以了解发生了什么:

然后在容器内:

我的解决方案非常基本。看起来像这样:

ClassLibrary1.csproj看起来像这样(仅引用 json.net):

而已。

我在用着:

  • Windows 10 企业版 1709
  • Docker 桌面社区版本 2.0.0.3 (31259)

预期结果是 dotnet restore 应该可以正常工作。

实际结果令我惊讶:

有谁知道为什么这不能像我期望的那样工作?我不应该能够像这样在我安装的卷上进行恢复吗?

注意:如果我直接从我的 Windows 10 计算机运行相同的 dotnet restore 命令,一切都会按预期工作。


更新

该问题仅在使用“Windows 容器模式(已启用实验功能)”在 Docker 中运行 Linux 容器时出现。令我困惑的是,我仍然可以在容器内的已挂载文件夹中创建和写入新文件、附加到现有文件等。这个怎么可能?

0 投票
1 回答
1386 浏览

.net-core - dotnet SDK 2.2.104 不编译 .NET Core 2.2

  1. 我有一个 .NET Sdk 2.1 及更低版本。
  2. 我安装了 sdk2.2 和 sdk3。
  3. 我删除了 sdk3

现在,VS17 成功构建并测试了我的解决方案。

但是从命令行,使用 dotnet-cli,我无法编译解决方案,因为他说他是sdk2.1.

点网构建

dotnet --info

WebApi.csproj

0 投票
1 回答
1120 浏览

linux - Centos 上的 MSBuild 返回“未找到导入的项目“/Microsoft.Cpp.Default.props””

我正在尝试在 CentOS 中构建一个 VS 项目。我通过yum install dotnet-sdk-2.2.

执行时dotnet msbuild myproj.vcxproj我得到:

使用许多解决方案搜索结果,但适用于 Windows。我可以做些什么来通过 Linux/CentOS 解决这个问题?

0 投票
1 回答
191 浏览

c# - 当涉及到引用时,有没有办法为新的 CS 项目格式使用通配符?

我使用新的 NetSDK 格式创建了一个 C# 项目。通配符适用于其他情况:

但是,通配符似乎不适用于Reference标签:

不确定是否有办法自动从 bin\ 目录中提取所有项目作为参考,以便显示在“依赖项”下?

0 投票
2 回答
1378 浏览

linux - 在 MacOS 上构建需要 net461 的 dotnet SDK 项目的最简单方法

我有.sln一个build.proj带有<TargetFrameworks>netcoreapp2.1;net461</TargetFrameworks>. 它使用 Visual Studio 和 构建在 Windows 上dotnet build,但我也希望它能够构建尽可能多的其他地方。我需要在我的 README.md 中放入什么和/或在项目文件中放入什么以使其在 Rider 和/或 Mac 上的 bash 上构建?