gpt4 book ai didi

.net-5 - 标记 .NET 5.0 EXE 以避免关于版本相关 API 的警告

转载 作者:行者123 更新时间:2023-12-05 04:55:50 25 4
gpt4 key购买 nike

我正在更新包含 DLL 和 EXE 的 .NET Framework 解决方案中的项目以面向 .NET 5.0。来自接触 DLL 的 EXE 的每个调用都标有警告:

Warning CA1416  'MyDllClass.MyProperty<int>(ref int, int, string)' is supported on 'Windows' 7.0 and later

suggested actions from Microsoft基本上相当于在每次调用中添加 cruft 或只是放弃并抑制警告。从逻辑上讲,我希望能够标记我的 EXE 以声明它以 Windows 7.0 或更高版本为目标,这样如果有人试图在其他地方运行它,它就会给出一个异常,但编译器可以假定这是所有 API 调用的基准.我尝试了两件事,但都没有帮助:

尝试 1

<SupportedOSPlatformVersion>7.0</SupportedOSPlatformVersion>

尝试 2

<TargetFramework>net5.0-windows7.0</TargetFramework>

解决这种情况的优雅方法是什么?我控制这两个项目的事实似乎是最好的情况。

来自 EXE 项目:

    <OutputType>WinExe</OutputType>
<TargetFramework>net5.0-windows</TargetFramework>
<UseWPF>true</UseWPF>

来自 DLL 项目:

    <TargetFramework>net5.0-windows</TargetFramework>
<UseWPF>true</UseWPF>

最佳答案

感谢comment by Hans Passant ,我尝试从我的 EXE 项目中删除它:

<GenerateAssemblyInfo>false</GenerateAssemblyInfo>

由于自动生成的字段与其中定义的字段冲突,我还必须删除 AssemblyInfo.cs。在那之后,一切都很好,没有警告。我假设编译器正在生成它需要的任何字段来让自己开心。

我也猜想这在未开发项目中不会是个问题,我只是在迁移应用程序的过程中才在某个地方遇到了那个元素。

关于.net-5 - 标记 .NET 5.0 EXE 以避免关于版本相关 API 的警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65153355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com