标记 .NET 5.0 EXE 以避免关于版本相关 API 的警告
Marking .NET 5.0 EXE to avoid warings about version dependent APIs
我正在更新包含 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 基本上等于在每次调用时都增加了麻烦,或者只是放弃并抑制了警告。从逻辑上讲,我希望能够标记我的 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>
感谢 ,我尝试从我的 EXE 项目中删除它:
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
由于自动生成的字段与其中定义的字段冲突,我还必须删除 AssemblyInfo.cs。在那之后,一切都很好,没有警告。我假设编译器正在生成它需要的任何字段来保持自己的快乐。
我也猜想这不会成为未开发项目的问题,我只是在迁移应用程序的过程中才在某个地方结束了那个元素。
我正在更新包含 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 基本上等于在每次调用时都增加了麻烦,或者只是放弃并抑制了警告。从逻辑上讲,我希望能够标记我的 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>
感谢
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
由于自动生成的字段与其中定义的字段冲突,我还必须删除 AssemblyInfo.cs。在那之后,一切都很好,没有警告。我假设编译器正在生成它需要的任何字段来保持自己的快乐。
我也猜想这不会成为未开发项目的问题,我只是在迁移应用程序的过程中才在某个地方结束了那个元素。