问题标签 [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.
.net-core - 具有多个目标框架的项目的 dotnet publish sln 失败
我有很多项目的解决方案。一些目标框架netcoreapp2.1,一些其他目标框架netstandard2.0和一个项目有双目标框架
我想要一个带有单个命令的 win10 工件:
使用此命令,我在使用双目标框架构建项目时遇到此错误。这是错误:
错误很明显。最后,我发现在输出目录中编译的 dll 似乎是 netstandard2.0 dll,因为我的应用程序仍然有效。
我不喜欢肮脏的东西,我该如何解决我的问题?
如果可能的话,我会避免调用 N 次“dotnet publish”命令。
.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 目标框架。
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
相似的:
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 还原,这可能会导致还原和生成错误。
我究竟做错了什么?
c# - (C#) 构建多个目标框架时出错:“无法打开 'MyApi.dll' 进行写入”
我正在按照本指南使用 NSwag 自动生成 API 客户端。但是这个客户端需要支持多个目标框架:
当我尝试构建此客户端时,我收到多个如下错误:
(CS2012)无法打开“MyApi.dll”进行写入——“该进程无法访问文件“MyApi.dll”,因为它正被另一个进程使用。
我怀疑这是因为每个框架都是异步构建的,并且从我的 API 生成的 DLL 正试图被每个进程读取。如何解决此问题/使每个目标框架同步构建?
c# - 如何为新创建的 Workspace 指定 TargetFramework?
我即将为我的 Roslyn 代码分析器及其代码修复程序创建测试。我正在使用生成的测试项目模板,其中包含许多预定义的方法来应用和验证代码修复。
但是,我的分析器的代码修复程序将替换null
为default
. 默认文字仅在 C# 7.1 中添加,但生成的测试助手方法创建的默认项目使用 C# 7.0,因此我的测试总是失败。我不想更改我的分析器以使用default(<type>)
(实际上存在分析器未知类型的情况)。
这是生成的方法如何使用项目创建新工作区的方式:
我不知道如何在此处指定 .NET 目标框架版本。在 .csproj 文件中,我们添加以下标签:
如何使用 Roslyn 代码分析器做同样的事情?
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。
我查看了条件编译文档,但似乎只谈论编译时更改设置,而不是首先是否进行编译。
我怎样才能做到这一点?
c# - 新的 Microsoft.NET.Sdk 项目在子目录中构建输出文件。怎么改回来?
最近升级了一个老版本的开源项目。新的项目文件是较新的 SDK 项目类型,我遇到了一些应该超级简单的问题。
在构建旧项目时,输出文件被直接复制到我在项目属性、构建选项卡、“输出路径”字段中指定的文件夹中。根据配置,我指定为 bin\x64\Debug 或 bin\x64\Release。
但是,使用这种新的项目格式,实际的 DLL 会被输出到 bin\x64\Debug\net461 中。如果我更改目标框架,则输出文件位于不同的位置。例如 bin\x64\Debug\net462。
我需要它永远不要复制到框架子目录。它彻底破坏了我们使用的 nmake 构建脚本。我该如何解决?
更重要的是,构建目录充满了从天知道在哪里复制的无用依赖 DLL。除了输出,我不想要输出目录中的任何内容。
我该如何让这种新的项目格式像旧的一样工作?
查尔斯。
c# - TargetFramework 与 TargetFrameworks(复数)
在.csproj
我的 .NET Core 项目的文件中,默认情况下有以下 3 行:
现在,如果我想针对多个框架,我可以将其更改为:
差异是微妙的,但它就在那里。针对多个框架时,您必须使用<TargetFrameworks>
(复数)而不仅仅是<TargetFramework>
(单数)。
但是为什么会做成这样呢?似乎只选择两者之一会更容易,然后总是使用它。这使我想到,可能有一个更复杂的原因来选择不同(尽管相似)的词,这取决于您是否针对更多框架。谁能启发我这个话题?