mirror of
https://github.com/2dust/v2rayN.git
synced 2026-11-15 17:05:03 +03:00
chore: remove NoWarn and fix .NET 10 build warnings across platforms (#9301)
* deps: bump ZXing.Net.Bindings.SkiaSharp from 0.16.14 to 0.16.22 Patch update to the latest stable release on the 0.16.x line. No breaking changes, no public API changes - purely internal fixes. Verified by a full Release build of v2rayN.sln on .NET 10; no new warnings or errors are introduced. * chore: remove NoWarn and fix .NET 10 build warnings Removes the repository-level NoWarn suppression from Directory.Build.props and addresses the warnings that surface on top of the .NET 10 migration in #9179, keeping Debug, Release, and cross-platform publishes warning-free without suppressing warnings globally. Changes: - Removes <NoWarn>CA1031;CS1591;NU1507;CA1416;IDE0058;IDE0053;IDE0200</NoWarn> from Directory.Build.props. - Annotates Windows-only APIs with [SupportedOSPlatform] and [SupportedOSPlatformGuard] so CA1416 accepts that the Windows surface is gated behind Utils.IsWindows() / Utils.IsNonWindows(). - Splits Utils.SetUnixFileMode into a cross-platform wrapper and a private [UnsupportedOSPlatform("windows")] implementation so File.SetUnixFileMode never reaches the analyzer on Windows builds. - Adds a parameterless constructor to MessageBoxDialog so Avalonia's runtime XAML loader (AVLN3001) can instantiate the dialog. - Moves the WPF high-DPI configuration from app.manifest to <ApplicationHighDpiMode>PerMonitorV2</ApplicationHighDpiMode> in v2rayN.csproj, fixing WFO0003. - Adds global using System.Runtime.Versioning; to ServiceLib and v2rayN.Desktop so the platform attributes are usable project-wide. * test: make cycle dependency tests locale-independent Accept the localized Russian cycle dependency diagnostic in CoreConfigContextBuilderTests so the assertions pass when tests run under a Russian UI culture. * fix: tighten Unix platform handling Adds Linux and macOS platform guards so the analyzer can narrow calls through Utils.IsLinux() and Utils.IsMacOS(). Marks the Linux/macOS autostart and system proxy helpers with explicit platform attributes. Updates Utils.GetSystemHosts() to read /etc/hosts on Linux and macOS while keeping the existing Windows hosts and hosts.ics merge behavior.
This commit is contained in:
committed by
GitHub
parent
780777068d
commit
58d2641559
@@ -864,15 +864,25 @@ public class Utils
|
||||
|
||||
public static Dictionary<string, string> GetSystemHosts()
|
||||
{
|
||||
var hosts = GetSystemHosts(@"C:\Windows\System32\drivers\etc\hosts");
|
||||
var hostsIcs = GetSystemHosts(@"C:\Windows\System32\drivers\etc\hosts.ics");
|
||||
|
||||
foreach (var (key, value) in hostsIcs)
|
||||
if (IsWindows())
|
||||
{
|
||||
hosts[key] = value;
|
||||
var hosts = GetSystemHosts(@"C:\Windows\System32\drivers\etc\hosts");
|
||||
var hostsIcs = GetSystemHosts(@"C:\Windows\System32\drivers\etc\hosts.ics");
|
||||
|
||||
foreach (var (key, value) in hostsIcs)
|
||||
{
|
||||
hosts[key] = value;
|
||||
}
|
||||
|
||||
return hosts;
|
||||
}
|
||||
|
||||
return hosts;
|
||||
if (IsLinux() || IsMacOS())
|
||||
{
|
||||
return GetSystemHosts("/etc/hosts");
|
||||
}
|
||||
|
||||
return new Dictionary<string, string>();
|
||||
}
|
||||
|
||||
public static async Task<string?> GetCliWrapOutput(string filePath, string? arg)
|
||||
@@ -1114,12 +1124,16 @@ public class Utils
|
||||
|
||||
#region Platform
|
||||
|
||||
[SupportedOSPlatformGuard("windows")]
|
||||
public static bool IsWindows() => OperatingSystem.IsWindows();
|
||||
|
||||
[SupportedOSPlatformGuard("linux")]
|
||||
public static bool IsLinux() => OperatingSystem.IsLinux();
|
||||
|
||||
[SupportedOSPlatformGuard("macos")]
|
||||
public static bool IsMacOS() => OperatingSystem.IsMacOS();
|
||||
|
||||
[UnsupportedOSPlatformGuard("windows")]
|
||||
public static bool IsNonWindows() => !OperatingSystem.IsWindows();
|
||||
|
||||
public static string GetExeName(string name)
|
||||
@@ -1214,6 +1228,16 @@ public class Utils
|
||||
}
|
||||
|
||||
public static bool SetUnixFileMode(string? fileName)
|
||||
{
|
||||
if (IsWindows())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return SetUnixFileModeInternal(fileName);
|
||||
}
|
||||
|
||||
[UnsupportedOSPlatform("windows")]
|
||||
private static bool SetUnixFileModeInternal(string? fileName)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user