source/holds the main C# and C++ projects; the WPF app lives insource/CapFrameXand native components live in folders likesource/CapFrameX.Hwinfo,source/CapFrameX.FrameView,source/CapFrameX.IGCL, andsource/CapFrameX.ADLX.- Tests are in
source/CapFrameX.Test(MSTest), with fixture files undersource/CapFrameX.Test/TestRecordFiles. - Assets and documentation resources live in
images/and project docs likePORTABLE_MODE.mdandREADME.mdlive at the repo root. - Build and version metadata are in
CapFrameX.sln,packages/, andversion/Version.txt.
nuget restore CapFrameX.slnrestores NuGet packages for the full solution.msbuild CapFrameX.sln /p:Configuration=Release /p:Platform=x64builds the full solution.msbuild source\CapFrameX\CapFrameX.csproj /p:Configuration=Release /p:Platform=x64builds the main app only.msbuild source\CapFrameXInstaller\CapFrameXInstaller.wixproj /p:Configuration=Release /p:Platform=x64builds the WiX installer.vstest.console source\CapFrameX.Test\bin\x64\Release\CapFrameX.Test.dllruns unit tests after building the test project.
See Jenkinsfile for the CI build ordering and Visual Studio version settings.
- C# uses spaces for indentation and favors Allman-style braces;
System.*usings should appear before other namespaces. - Follow existing naming: PascalCase for types and public members, camelCase for locals and parameters, and
I*for interfaces. - Keep
packages.configandapp.configconsistent when adding dependencies or configuration.
- Tests use MSTest in
source/CapFrameX.Test; keep new tests near related feature folders (for exampleDataorStatistics). - Name test files with the
*Test.cssuffix and add new fixture CSVs toTestRecordFileswhen needed. - Prefer x64 test runs because several native components are x64-only.
- Git history was not accessible in this environment, so follow a short, imperative subject line (for example, "Fix capture session parsing") and add context in the body when needed.
- PRs should explain the change, include repro steps, and provide screenshots for UI/overlay changes. Link related issues if applicable.
- Portable mode settings are documented in
PORTABLE_MODE.md; useportable.json.sampleas a starting point for local overrides. - Avoid committing local logs (
logs/) or generated outputs.