# Agent Instructions: MAPO-IOB-WIN ## Project Overview A collection of .NET (C#/VB) projects for industrial communication with NC controls (Fanuc, Siemens, Mitsubishi, etc.) via the Mapo Protocol. ## Build & Release - **Toolchain**: MSBuild. - **Config**: Always use `Release` configuration. - **Command Example**: ```powershell & "$env:MSBUILD_PATH" "ProjectName\ProjectName.csproj" -target:Build /p:Configuration=Release /p:OutputPath=bin/ /nodeReuse:false /verbosity:minimal /m ``` - **NuGet**: Requires Steamware Nexus Proxy sources. Use `dotnet nuget restore` on the specific `.sln` before building. - **Versioning**: Automated via `VersGen\VersGen.cs` and `.nuspec` updates during CI. Manual updates to `VersGen.cs` might be needed if mimicking CI. - **Release Artifacts**: Zipped using `7z.exe`; MD5/SHA1 hashes are generated. ## Key Directories & Files - **`IOB-WIN-*`**: Protocol-specific implementations (e.g., `FANUC`, `SIEMENS`, `SHELLY`). - **`VersGen\`**: Handles automated assembly versioning. - **`UtilityScripts\`**: Contains `alarmFormatter.py`. Requires `python3` and `pip install inquirer`. - **`EgwCApp\`**: Core application logic and testing projects. ## Environment & Setup - **Siemens PLC**: Must enable "PUT/GET" permission in TIA Portal. - **Dependencies**: Uses `saltminion` and specific Windows accounts (`steamware`/`IOB`). - **Documentation**: Generated via `docfx`. ## Important Workflow Notes - **CI Logic**: The `.gitlab-ci.yml` contains critical automation logic for NuGet sources, versioning, and deployment. Refer to it for exact operational steps. - **NuGet Fixes**: The CI uses a `.nuget-fix` helper to manage Steamware Nexus Proxy sources. If encountering NuGet errors, check source configuration. - **Versioning Flow**: Versioning involves updating `VersGen.cs` (replacing `0.0.0.0`) and updating `.nuspec` files.