Enable WSL solution builds

This commit is contained in:
Meik
2026-03-16 14:33:28 +01:00
parent 7f3415c690
commit c330627f0f
4 changed files with 23 additions and 4 deletions

View File

@@ -8,6 +8,8 @@ The solution `LIAM.sln` covers all Matrix42 integration projects. Runtime code c
Run `nuget restore LIAM.sln` once per clone to hydrate packages. Build locally with `msbuild LIAM.sln /p:Configuration=Debug`; use `Release` for deployable artifacts. For a clean rebuild, execute `msbuild LIAM.sln /t:Clean,Build /p:Configuration=Debug`. Visual Studio can open `LIAM.sln`, with `LiamM42WebApi` as the suggested startup project. When self-hosting the API, deploy it to IIS or IIS Express pointing at the project folder.
On WSL/Linux, use the user-local `msbuild` wrapper that delegates to `dotnet msbuild` with the local .NET Framework reference assemblies under `~/.local/share/dotnet-framework-reference-assemblies/`. The expected verification command there is still `msbuild LIAM.sln /p:Configuration=Debug`. `LiamWorkflowDiagnostics` is a WPF diagnostics tool and is intentionally skipped on non-Windows builds; validate that project on Windows with Visual Studio or Windows MSBuild. If you only need to validate the NTFS provider in isolation, `msbuild LiamNtfs/LiamNtfs.csproj /p:Configuration=Debug` is the fastest targeted check.
## Coding Style & Naming Conventions
Follow C# Allman braces with four-space indentation. Maintain `PascalCase` for classes, members, and constants (e.g., `constFragmentNameConfigProviderBase`), and `camelCase` for locals and parameters. Keep `using` directives sorted and trimmed. New projects should link `SharedAssemblyInfo.cs` to align assembly metadata. Format via Visual Studio or `dotnet format` if the SDK is available.

View File

@@ -132,6 +132,6 @@
<!--<Exec Command="xcopy.exe /S ..\LiamMsTeams\bin\Debug\LiamMsTeams.dll bin\Debug" ContinueOnError="false" WorkingDirectory="." />-->
</Target>
<PropertyGroup>
<PostBuildEvent>IF $(ConfigurationName) == Debug_and_copy start XCOPY /Y /R "$(ProjectDir)$(OutDir)Liam*.dll" "\\srvwsm001.imagoverum.com\c$\Program Files (x86)\Matrix42\Matrix42 Workplace Management\svc\bin"</PostBuildEvent>
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' and '$(Configuration)' == 'Debug_and_copy' ">XCOPY /Y /R "$(ProjectDir)$(OutDir)Liam*.dll" "\\srvwsm001.imagoverum.com\c$\Program Files (x86)\Matrix42\Matrix42 Workplace Management\svc\bin"</PostBuildEvent>
</PropertyGroup>
</Project>
</Project>

View File

@@ -41,6 +41,9 @@
<PropertyGroup>
<ApplicationIcon>C4IT.ico</ApplicationIcon>
</PropertyGroup>
<PropertyGroup Condition=" '$(MSBuildRuntimeType)' == 'Core' ">
<GenerateResourceUsePreserializedResources>true</GenerateResourceUsePreserializedResources>
</PropertyGroup>
<ItemGroup>
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
@@ -61,6 +64,11 @@
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup Condition=" '$(MSBuildRuntimeType)' == 'Core' and Exists('$(MSBuildBinPath)/System.Resources.Extensions.dll') ">
<Reference Include="System.Resources.Extensions">
<HintPath>$(MSBuildBinPath)/System.Resources.Extensions.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="..\..\Common Code\Configuration\C4IT.Configuration.ConfigHelper.cs">
<Link>Common\C4IT.Configuration.ConfigHelper.cs</Link>
@@ -152,4 +160,4 @@
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
</Project>

View File

@@ -117,4 +117,13 @@
<None Include="App.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
<Target Name="Build" Condition=" '$(OS)' != 'Windows_NT' ">
<Message Text="Skipping LiamWorkflowDiagnostics on non-Windows because the WPF diagnostics tool requires Windows MSBuild." Importance="high" />
<MakeDir Directories="$(OutputPath)" />
<WriteLinesToFile File="$(OutputPath)LiamWorkflowDiagnostics.skipped.txt" Lines="Skipped on non-Windows because the WPF diagnostics tool requires Windows MSBuild." Overwrite="true" />
</Target>
<Target Name="Rebuild" Condition=" '$(OS)' != 'Windows_NT' " DependsOnTargets="Clean;Build" />
<Target Name="Clean" Condition=" '$(OS)' != 'Windows_NT' ">
<Delete Files="$(OutputPath)LiamWorkflowDiagnostics.skipped.txt" />
</Target>
</Project>