Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
using System;
using System.IO;
using System.Threading.Tasks;
using Xunit;
using BannerlordModEditor.Common.Services;

namespace BannerlordModEditor.Common.Tests.Services
{
public class ProjectSettingsServiceTests
{
private readonly ProjectSettingsService _service;

public ProjectSettingsServiceTests()
{
_service = new ProjectSettingsService();
}

[Fact]
public void GetDefault_CreatesValidDefault()
{
var result = _service.GetDefault("/test/path");

Assert.Equal("/test/path", result.ProjectPath);
Assert.Equal("path", result.ProjectName);
Assert.Equal("Latest", result.GameVersion);
Assert.Empty(result.RecentFiles);
Assert.Empty(result.OpenTabs);
Assert.NotNull(result.Window);
}

[Fact]
public void GetSettingsFilePath_ReturnsCorrectPath()
{
var result = _service.GetSettingsFilePath("/test/project");

Assert.Equal("/test/project/.bannerlordmodeditor.json", result);
Copy link

Copilot AI Mar 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This assertion hard-codes / path separators and will fail on Windows where Path.Combine uses \. Build the expected value using Path.Combine("/test/project", ".bannerlordmodeditor.json") (or construct the test input using Path.Combine too) so the test is cross-platform.

Suggested change
Assert.Equal("/test/project/.bannerlordmodeditor.json", result);
var expectedPath = Path.Combine("/test/project", ".bannerlordmodeditor.json");
Assert.Equal(expectedPath, result);

Copilot uses AI. Check for mistakes.
}

[Fact]
public void Load_ReturnsDefaultForNonExistentFile()
{
var result = _service.Load("/nonexistent/path");

Assert.NotNull(result);
Assert.Equal("/nonexistent/path", result.ProjectPath);
}

[Fact]
public async Task LoadAsync_ReturnsDefaultForNonExistentFile()
{
var result = await _service.LoadAsync("/nonexistent/path");

Assert.NotNull(result);
Assert.Equal("/nonexistent/path", result.ProjectPath);
}

[Fact]
public void Save_CreatesSettingsFile()
{
var tempDir = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString());
var settings = new ProjectSettings
{
ProjectName = "Test Project",
GameVersion = "v1.2.9"
};

try
{
_service.Save(settings, tempDir);

var settingsPath = Path.Combine(tempDir, ".bannerlordmodeditor.json");
Assert.True(File.Exists(settingsPath));

var loaded = _service.Load(tempDir);
Assert.Equal("Test Project", loaded.ProjectName);
Assert.Equal("v1.2.9", loaded.GameVersion);
}
finally
{
if (Directory.Exists(tempDir))
Directory.Delete(tempDir, true);
}
}

[Fact]
public async Task SaveAsync_CreatesSettingsFile()
{
var tempDir = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString());
var settings = _service.GetDefault(tempDir);
settings.ProjectName = "Async Test";

try
{
await _service.SaveAsync(settings, tempDir);

var loaded = await _service.LoadAsync(tempDir);
Assert.Equal("Async Test", loaded.ProjectName);
}
finally
{
if (Directory.Exists(tempDir))
Directory.Delete(tempDir, true);
}
}

[Fact]
public void Save_PreservesRecentFiles()
{
var tempDir = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString());
var settings = new ProjectSettings
{
ProjectName = "Test",
RecentFiles = new System.Collections.Generic.List<string>
{
"/path/to/file1.xml",
"/path/to/file2.xml"
}
};

try
{
_service.Save(settings, tempDir);

var loaded = _service.Load(tempDir);
Assert.Equal(2, loaded.RecentFiles.Count);
Assert.Contains("/path/to/file1.xml", loaded.RecentFiles);
Assert.Contains("/path/to/file2.xml", loaded.RecentFiles);
}
finally
{
if (Directory.Exists(tempDir))
Directory.Delete(tempDir, true);
}
}
}
}
116 changes: 116 additions & 0 deletions BannerlordModEditor.Common/Services/ProjectSettingsService.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Text.Json;
using System.Threading.Tasks;

namespace BannerlordModEditor.Common.Services
{
public class ProjectSettings
{
public string ProjectName { get; set; } = string.Empty;
public string ProjectPath { get; set; } = string.Empty;
public string GameVersion { get; set; } = "Latest";
public string LastOpenedFile { get; set; } = string.Empty;
public DateTime LastOpened { get; set; }
public Dictionary<string, string> CustomSettings { get; set; } = new();
public List<string> RecentFiles { get; set; } = new();
public List<string> OpenTabs { get; set; } = new();
public WindowSettings Window { get; set; } = new();
}

public class WindowSettings
{
public double Width { get; set; } = 1200;
public double Height { get; set; } = 800;
public double X { get; set; }
public double Y { get; set; }
public bool IsMaximized { get; set; }
}
Comment on lines +9 to +29
Copy link

Copilot AI Mar 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ProjectSettings/WindowSettings models and the service/interface are all declared in the same file. Since these are likely to be consumed independently (models by UI, service by DI/tests), splitting them into separate files (e.g., Models/ProjectSettings.cs, Models/WindowSettings.cs, Services/IProjectSettingsService.cs) will make the codebase easier to navigate and evolve.

Copilot uses AI. Check for mistakes.

public interface IProjectSettingsService
{
Task<ProjectSettings> LoadAsync(string projectPath);
ProjectSettings Load(string projectPath);
Task SaveAsync(ProjectSettings settings, string projectPath);
void Save(ProjectSettings settings, string projectPath);
ProjectSettings GetDefault(string projectPath);
string GetSettingsFilePath(string projectPath);
}

public class ProjectSettingsService : IProjectSettingsService
{
private const string SettingsFileName = ".bannerlordmodeditor.json";
private static readonly JsonSerializerOptions JsonOptions = new()
{
WriteIndented = true,
PropertyNamingPolicy = JsonNamingPolicy.CamelCase
};

public async Task<ProjectSettings> LoadAsync(string projectPath)
{
return await Task.Run(() => Load(projectPath));
}
Comment on lines +50 to +53
Copy link

Copilot AI Mar 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LoadAsync/SaveAsync are implemented via Task.Run, which offloads synchronous disk I/O to the thread pool rather than using true async file I/O. This can reduce scalability and responsiveness under load. Prefer File.ReadAllTextAsync/File.WriteAllTextAsync (and async JSON serialize/deserialize where applicable) so the async API is genuinely non-blocking.

Copilot uses AI. Check for mistakes.

public ProjectSettings Load(string projectPath)
{
var settingsPath = GetSettingsFilePath(projectPath);

if (!File.Exists(settingsPath))
return GetDefault(projectPath);

try
{
var json = File.ReadAllText(settingsPath);
var settings = JsonSerializer.Deserialize<ProjectSettings>(json, JsonOptions);
return settings ?? GetDefault(projectPath);
}
catch
{
return GetDefault(projectPath);
}
Comment on lines +68 to +71
Copy link

Copilot AI Mar 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The blanket catch { return GetDefault(...) } will silently hide parsing errors and filesystem failures, making issues hard to diagnose (and potentially masking real misconfigurations). Consider narrowing to expected exceptions (e.g., JsonException, IOException) and at minimum emitting a log/trace entry; for unexpected exceptions, consider rethrowing so failures aren’t silently ignored.

Suggested change
catch
{
return GetDefault(projectPath);
}
catch (JsonException ex)
{
Console.Error.WriteLine($"Failed to parse project settings file '{settingsPath}': {ex}");
return GetDefault(projectPath);
}
catch (IOException ex)
{
Console.Error.WriteLine($"I/O error while reading project settings file '{settingsPath}': {ex}");
return GetDefault(projectPath);
}

Copilot uses AI. Check for mistakes.
}

public async Task SaveAsync(ProjectSettings settings, string projectPath)
{
await Task.Run(() => Save(settings, projectPath));
}
Comment on lines +74 to +77
Copy link

Copilot AI Mar 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LoadAsync/SaveAsync are implemented via Task.Run, which offloads synchronous disk I/O to the thread pool rather than using true async file I/O. This can reduce scalability and responsiveness under load. Prefer File.ReadAllTextAsync/File.WriteAllTextAsync (and async JSON serialize/deserialize where applicable) so the async API is genuinely non-blocking.

Copilot uses AI. Check for mistakes.

public void Save(ProjectSettings settings, string projectPath)
{
if (settings == null)
throw new ArgumentNullException(nameof(settings));

var settingsPath = GetSettingsFilePath(projectPath);
var directory = Path.GetDirectoryName(settingsPath);

if (!string.IsNullOrEmpty(directory) && !Directory.Exists(directory))
Directory.CreateDirectory(directory);

settings.ProjectPath = projectPath;
settings.LastOpened = DateTime.Now;
Comment on lines +90 to +91
Copy link

Copilot AI Mar 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

DateTime.Now is local-time dependent and makes values harder to compare across machines/timezones; it also tends to complicate deterministic tests. Prefer DateTime.UtcNow or DateTimeOffset.UtcNow for persisted timestamps. Also, mutating settings.ProjectPath and settings.LastOpened inside Save is a side effect that may surprise callers; if this is required behavior, consider documenting it on the interface/method.

Copilot uses AI. Check for mistakes.

var json = JsonSerializer.Serialize(settings, JsonOptions);
File.WriteAllText(settingsPath, json);
Copy link

Copilot AI Mar 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Writing directly to the final settings file risks leaving a partially written/corrupted JSON file if the process crashes mid-write or the disk fills up. Prefer an atomic write pattern (write to a temp file in the same directory, flush, then replace/move over the target) to improve reliability.

Suggested change
File.WriteAllText(settingsPath, json);
var tempSettingsPath = settingsPath + ".tmp";
File.WriteAllText(tempSettingsPath, json);
File.Move(tempSettingsPath, settingsPath, true);

Copilot uses AI. Check for mistakes.
}

public ProjectSettings GetDefault(string projectPath)
{
return new ProjectSettings
{
ProjectPath = projectPath,
ProjectName = Path.GetFileName(projectPath),
GameVersion = "Latest",
LastOpened = DateTime.Now,
RecentFiles = new List<string>(),
OpenTabs = new List<string>(),
Window = new WindowSettings()
};
}

public string GetSettingsFilePath(string projectPath)
{
return Path.Combine(projectPath, SettingsFileName);
}
}
}
3 changes: 3 additions & 0 deletions BannerlordModEditor.UI/App.axaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,9 @@

// 注册Common层服务
services.AddTransient<BannerlordModEditor.Common.Services.IFileDiscoveryService, BannerlordModEditor.Common.Services.FileDiscoveryService>();
services.AddSingleton<BannerlordModEditor.Common.Services.IGameDirectoryScanner, BannerlordModEditor.Common.Services.GameDirectoryScanner>();

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / test (Release)

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / test (Release)

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / test (Release)

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / test (Release)

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / test (Debug)

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / test (Debug)

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / test (Debug)

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / test (Debug)

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / tmux-integration-tests (9.0.x)

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / tmux-integration-tests (9.0.x)

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / tmux-integration-tests (9.0.x)

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / tmux-integration-tests (9.0.x)

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / windows-tests (9.0.x)

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / windows-tests (9.0.x)

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / windows-tests (9.0.x)

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / windows-tests (9.0.x)

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / macos-tests (9.0.x)

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / macos-tests (9.0.x)

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / macos-tests (9.0.x)

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / macos-tests (9.0.x)

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / macos-tests (9.0.x)

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / macos-tests (9.0.x)

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / macos-tests (9.0.x)

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / macos-tests (9.0.x)

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / test (Release)

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / test (Release)

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / test (Release)

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / test (Release)

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / unit-tests

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / unit-tests

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / unit-tests

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / unit-tests

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / windows-tests (9.0.x)

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / windows-tests (9.0.x)

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / windows-tests (9.0.x)

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / windows-tests (9.0.x)

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / tmux-integration-tests (9.0.x)

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / tmux-integration-tests (9.0.x)

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / tmux-integration-tests (9.0.x)

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / tmux-integration-tests (9.0.x)

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / memory-tests

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / memory-tests

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / memory-tests

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / memory-tests

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / ui-tests

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / ui-tests

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / ui-tests

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / ui-tests

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / regression-tests

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / regression-tests

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / regression-tests

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / regression-tests

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / large-xml-tests

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / large-xml-tests

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / large-xml-tests

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / large-xml-tests

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / concurrency-tests

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / concurrency-tests

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / concurrency-tests

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / concurrency-tests

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / integration-tests

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / integration-tests

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / integration-tests

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / integration-tests

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / error-handling-tests

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / error-handling-tests

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / error-handling-tests

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / error-handling-tests

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / performance-tests

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / performance-tests

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / performance-tests

The type or namespace name 'GameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 74 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / performance-tests

The type or namespace name 'IGameDirectoryScanner' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)
services.AddSingleton<BannerlordModEditor.Common.Services.IProjectTypeDetector, BannerlordModEditor.Common.Services.ProjectTypeDetector>();

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / test (Release)

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / test (Release)

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / test (Release)

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / test (Release)

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / test (Debug)

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / test (Debug)

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / test (Debug)

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / test (Debug)

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / tmux-integration-tests (9.0.x)

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / tmux-integration-tests (9.0.x)

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / tmux-integration-tests (9.0.x)

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / tmux-integration-tests (9.0.x)

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / windows-tests (9.0.x)

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / windows-tests (9.0.x)

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / windows-tests (9.0.x)

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / windows-tests (9.0.x)

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / macos-tests (9.0.x)

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / macos-tests (9.0.x)

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / macos-tests (9.0.x)

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / macos-tests (9.0.x)

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / macos-tests (9.0.x)

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / macos-tests (9.0.x)

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / macos-tests (9.0.x)

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / macos-tests (9.0.x)

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / test (Release)

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / test (Release)

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / test (Release)

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / test (Release)

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / unit-tests

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / unit-tests

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / unit-tests

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / unit-tests

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / windows-tests (9.0.x)

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / windows-tests (9.0.x)

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / windows-tests (9.0.x)

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / windows-tests (9.0.x)

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / tmux-integration-tests (9.0.x)

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / tmux-integration-tests (9.0.x)

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / tmux-integration-tests (9.0.x)

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / tmux-integration-tests (9.0.x)

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / memory-tests

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / memory-tests

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / memory-tests

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / memory-tests

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / ui-tests

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / ui-tests

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / ui-tests

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / ui-tests

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / regression-tests

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / regression-tests

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / regression-tests

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / regression-tests

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / large-xml-tests

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / large-xml-tests

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / large-xml-tests

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / large-xml-tests

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / concurrency-tests

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / concurrency-tests

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / concurrency-tests

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / concurrency-tests

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / integration-tests

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / integration-tests

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / integration-tests

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / integration-tests

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / error-handling-tests

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / error-handling-tests

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / error-handling-tests

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / error-handling-tests

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / performance-tests

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / performance-tests

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / performance-tests

The type or namespace name 'ProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)

Check failure on line 75 in BannerlordModEditor.UI/App.axaml.cs

View workflow job for this annotation

GitHub Actions / performance-tests

The type or namespace name 'IProjectTypeDetector' does not exist in the namespace 'BannerlordModEditor.Common.Services' (are you missing an assembly reference?)
services.AddSingleton<BannerlordModEditor.Common.Services.IProjectSettingsService, BannerlordModEditor.Common.Services.ProjectSettingsService>();

// 注册所有编辑器ViewModel和View
services.AddTransient<AttributeEditorViewModel>();
Expand Down
Loading