问题标签 [target-framework]

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

.net-core - 具有多个目标框架的项目的 dotnet publish sln 失败

我有很多项目的解决方案。一些目标框架netcoreapp2.1,一些其他目标框架netstandard2.0和一个项目有双目标框架

我想要一个带有单个命令的 win10 工件:

使用此命令,我在使用双目标框架构建项目时遇到此错误。这是错误:

错误很明显。最后,我发现在输出目录中编译的 dll 似乎是 netstandard2.0 dll,因为我的应用程序仍然有效。

我不喜欢肮脏的东西,我该如何解决我的问题?

如果可能的话,我会避免调用 N 次“dotnet publish”命令。

0 投票
0 回答
331 浏览

.net - 为什么 netstandard2.0 显示 NUnit3TestAdapter 警告但 netstandard1.6 没有?

当目标框架为 netstandard2.0 时,NUnit3TestAdapter nuget 包在参考中显示警告消息,但当项目目标框架为 netstandar1.6 时,它不显示警告。我想了解这种情况下的区别。

警告信息是:

使用“.NETFramework,Version=v4.6.1”而不是项目目标框架“.NETStandard,Version=v2.0”恢复包“NUnit3TestAdapter 3.12.0”。此软件包可能与您的项目不完全兼容。

我有 c# nunit 测试项目,我需要在其中包含 NUnit3TestAdapter nuget 包。我试图压制警告,但这不是我觉得的解决方案。

my_project.csproj 文件内容

我希望 NUnit3TestAdapter 不应该在 netstandard2.0 时向我显示警告,如果它没有显示为 netstandard1.6 目标框架。

0 投票
2 回答
3394 浏览

visual-studio-2019 - 如何在 Visual Studio 2019 中使用 .NET 4.6.2 版运行单元测试?

我正在尝试从 Visual Studio 中的单元测试运行中解决此警告:

[6/7/2019 7:16:21 PM 警告] 测试运行将使用为框架 .NETFramework、Version=v4.5 和平台 X64 构建的 DLL。以下 DLL 与框架/平台设置不匹配。MyProject.Tests.dll 是为 Framework 4.6.2 和 Platform AnyCPU 构建的。有关管理这些设置的更多详细信息,请访问 http://go.microsoft.com/fwlink/?LinkID=236877&clcid=0x409

我知道我需要使用与单元测试项目(4.6.2)的框架匹配的目标框架版本来更新 runsettings 文件。我只是无法弄清楚魔术字符串是什么。

这是起点:

我可以找到尝试的每个值都会导致以下异常:

[6/7/2019 8:34:20 PM 错误] 无法配置运行设置插件“VSTest 运行配置”的设置,因为它引发了以下异常:“加载设置时发生错误。错误:设置“RunConfiguration”无效。为 'TargetFrameworkVersion' 指定的值 'net462' 无效..' 请联系插件作者。

[6/7/2019 8:34:20 PM 诊断] 生成测试运行设置异常:System.Xml.XmlException:加载设置时出错。错误:设置“RunConfiguration”无效。在 Microsoft.VisualStudio.TestWindow.VSTest.TestRunSettingsService.MergeRunSettingsAndFindCompatibleSources(架构和平台,FrameworkVersion 和框架,字符串结果目录, Microsoft.VisualStudio.TestWindow.VSTest.TestRunSettingsService 上的 String solutionDirectory、IDictionary`2 sourceSettings、IXPathNavigable inputRunSettings、String& incompatibleSourcesWarning。

我尝试过的价值观:

  • .NETFramework,版本=v4.6
  • .NETFramework,版本=v4.6.2
  • v4.6.2
  • 网46
  • 网462
  • 框架46

相似的:

0 投票
3 回答
5631 浏览

c# - 更改为时出错(复数)在 .NET Core csproj 文件中

我正在关注 Pluralsight 上关于让 MSTest 项目同时针对 .net core 2.2 和 .NET 4.7.2 的教程。这需要转到我的测试项目的 .csproj 文件并对其进行编辑,以便以下内容:

将变为 TargetFramework (现在复数),然后我们添加 .NET 4.7.2 名字对象,如下所示:

保存 .csproj 文件后,VS 2019 在顶部的黄色栏中显示以下错误:

项目在上一次操作时遇到问题:“Debug|AnyCPU”配置中的“TargetFrameworkMoniker”和“NuGetTargetMoniker”属性的值都是空的。此配置不会有助于 NuGet 还原,这可能会导致还原和生成错误。

我究竟做错了什么?

0 投票
1 回答
150 浏览

.net-core - Azure 函数 TargetFramework

最近 dotnet core 2.2.7 已经发布。

我想知道,关于 Azure 函数的运行时 - 它会自动针对这个最新的运行时吗?

我在文档或谷歌搜索中找不到任何关于它的信息。

0 投票
1 回答
659 浏览

c# - (C#) 构建多个目标框架时出错:“无法打开 'MyApi.dll' 进行写入”

我正在按照本指南使用 NSwag 自动生成 API 客户端。但是这个客户端需要支持多个目标框架:

当我尝试构建此客户端时,我收到多个如下错误:

(CS2012)无法打开“MyApi.dll”进行写入——“该进程无法访问文件“MyApi.dll”,因为它正被另一个进程使用。

我怀疑这是因为每个框架都是异步构建的,并且从我的 API 生成的 DLL 正试图被每个进程读取。如何解决此问题/使每个目标框架同步构建?

0 投票
1 回答
209 浏览

c# - 如何为新创建的 Workspace 指定 TargetFramework?

我即将为我的 Roslyn 代码分析器及其代码修复程序创建测试。我正在使用生成的测试项目模板,其中包含许多预定义的方法来应用和验证代码修复。

但是,我的分析器的代码修复程序将替换nulldefault. 默认文字仅在 C# 7.1 中添加,但生成的测试助手方法创建的默认项目使用 C# 7.0,因此我的测试总是失败。我不想更改我的分析器以使用default(<type>)(实际上存在分析器未知类型的情况)。

这是生成的方法如何使用项目创建新工作区的方式:

我不知道如何在此处指定 .NET 目标框架版本。在 .csproj 文件中,我们添加以下标签:

如何使用 Roslyn 代码分析器做同样的事情?

0 投票
1 回答
923 浏览

visual-studio - 只有在工具支持的情况下,我如何有条件地构建 .Net Core 3.0?

我想使用 TargetFrameworks .csproj 元素将 .Net Core 3.0 (netcoreapp3.0) 和 .Net Framework 4.8 (net48) 用于控制台应用程序,如下所示:

但是,当工具不支持 netcoreapp3.0(例如 Visual Studio 2017)时,我希望相同的 .csproj 文件在旧工具中正常降级并仅编译 .Net Framework 4.8。

我查看了条件编译文档,但似乎只谈论编译更改设置,而不是首先是否进行编译。

我怎样才能做到这一点?

0 投票
1 回答
247 浏览

c# - 新的 Microsoft.NET.Sdk 项目在子目录中构建输出文件。怎么改回来?

最近升级了一个老版本的开源项目。新的项目文件是较新的 SDK 项目类型,我遇到了一些应该超级简单的问题。

在构建旧项目时,输出文件被直接复制到我在项目属性、构建选项卡、“输出路径”字段中指定的文件夹中。根据配置,我指定为 bin\x64\Debug 或 bin\x64\Release。

但是,使用这种新的项目格式,实际的 DLL 会被输出到 bin\x64\Debug\net461 中。如果我更改目标框架,则输出文件位于不同的位置。例如 bin\x64\Debug\net462。

我需要它永远不要复制到框架子目录。它彻底破坏了我们使用的 nmake 构建脚本。我该如何解决?

更重要的是,构建目录充满了从天知道在哪里复制的无用依赖 DLL。除了输出,我不想要输出目录中的任何内容。

我该如何让这种新的项目格式像旧的一样工作?

查尔斯。

0 投票
2 回答
6022 浏览

c# - TargetFramework 与 TargetFrameworks(复数)

.csproj我的 .NET Core 项目的文件中,默认情况下有以下 3 行:

现在,如果我想针对多个框架,我可以将其更改为:

差异是微妙的,但它就在那里。针对多个框架时,您必须使用<TargetFrameworks>(复数)而不仅仅是<TargetFramework>(单数)。

但是为什么会做成这样呢?似乎只选择两者之一会更容易,然后总是使用它。这使我想到,可能有一个更复杂的原因来选择不同(尽管相似)的词,这取决于您是否针对更多框架。谁能启发我这个话题?