Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: Create a Build task for DsCOM (#102)
* feat: Created new project: dscom.build The project shall be used to create an MsBuild target for the automated export of Type Libraries. * feat: [DI/Tesing] Separated interface for testing purposes * feat: [Logging] Added verbose/detailed logging for TLB export * feat: [Conversion] Added Default implementation of context * feat: [Check] Added check for run-time build-parameters * feat: [Implementation] Added task for type library export * feat: [DevDependency] Added stubs for automatic build tasks * feat: [Tracability] Added source link * fix: Renamed targets file * fix: Renamed task for better using within targets files * feat: Added basic property definitions * feat: First draft of targets file. Hook targets are still missing * fix: Applied dotnet format to files. * fix: Added copyrights to props and targets * feat: Added documentation for task * fix: Documentation of context implementation * fix: Something is always wrong. * fix: Added documentation for FS checks * fix: applied documentation * fix: Fixed compilation issues * fix: Setting up assembly load context * fix: Improvements on errorhandling and small refactorings * fix: removed todo - not necessary for details refer to https://docs.microsoft.com/en-us/visualstudio/msbuild/common-msbuild-project-items?view=vs-2019#comreference * fix: Made the warning a notice * Fix: Added some more descriptive hints * fix: Moved variables to targets * fix: Reapplied renamed variables * fix: Removed trailing backslash * feat: Target Package is renamed to dSPACE.Runtime.InteropServices.BuildTasks * feat: The package has been renamed * fix: Weird thing: If ITask is added, the base type will be of TlbExport The TlbExport Task cannot be loaded. When loading the assembly into a reflector (ILSpy, dotPeek), it is shown, that the assembly does not provide any base types - not even object. When added ITask as interface, ITask will be the only base type. THIS IS ACTUALLY PRETTY WEIRD. * fix: Warning removed * FIx: Renamed attribute AssemblyName to AssemblyFile Unless the assembly is installed globally within the context of MsBuild, the TlbExportTask cannot be loaded using AssemblyName, but must be loaded using AssemblyFile. * Fix: MsBuild will only add a string. Converted parameter type The Guid cannot be added to a task. Convert string to Guid within the MsBuild task. * Feat: Added new Guard for Windows Systems Only The task shall only be executed on Windows based Systems * FEAT: Made Build Task .NET 4.8 compliant * Feat: Added items to BuildContext interface for improval of unit tests * Feat: Initial revision of unit tests * feat: Use References automatically If a project has references, include them automatically into the list of references Assemblies. * chore: Fix Compiler Warning IDE0250 * fix: Do not treat ASMPath as directory The ASMPath properties refers to concrete file paths and should not be treated as a directory. * qa: Using moq for mocks in MsBuild test * chore: Removed Warning IDE0031 * chore: Removed CA1854 Warning * chore: Removed CA1852 Warning If .NET 7 SDK is installed, due to "LatestMajor", another FxCop Ruleset will be activated. This will cause more warnings on developer machines. * refactor: Code cleanup (#95) * chore: Added me as an author * chore: Added an extra warning Added an extra warning to improve builds * qa: Finished implementation of unit tests * fix: Treating RefPath as directory * qa: Finished Unit tests for build tasks * deploy: Bundle dependent assembly into nuget package * fix: Override Automatic assembly loading If assembly is next to task assembly, load it from there, maybe remove it from there afterward. * feat: Bundle tool into nuget package * fix: Task can be used for AnyCPU as well * chore: Ignore packages folder. Prepares Acceptance test * fix: Erroneous Cast due to missing nullable * chore: Fix CA1852 * fix: CS0628 fixed * fix: Mark Task as NetStandard 2.0 compliant * feat: Package tool within package to target x86 or Netstandard2.0 * feat: Using task and tools to call tlbexport * fix: Added check if net6.0-windows is used * chore: Added a warning if TLB was not found * fix: Warning is shown, if tools are used * fix: NuGet produced was not netstandard compliant * fix: Include netstandard targets in package * feat: If TLB is missing, Warning can be promoted to error * feat: Usage of Tools can be enforced * chore: Clarify enforced tool usage * qa: (Ab)use Contracts for Acceptance test * qa: (Ab-)using 32bit example as acceptance test * qa: Added acceptance test that are automatically executed on pull request * deploy: Added deployment steps for build tasks * ci: added Unit testing step * ci: Run separate code style check * qa: Try to use relative path for acceptance test start * doc: Add ReadMe The documentation is added to the repository and will be added to the resulting NuGet package. * docs: Added first draft of documentation The build task documentation is added preliminarily * qa: Using response file for acceptance test * deploy: Added forgotten RuntimeIdentifier Restore did not include RID property * qa: Use a more decent packing * qa: Fix acceptance test for net4.8 Dotnet SDK has issues when building implicit usings for .NET 4.8 with Implicit using System.Net.Http. * qa: Acceptance test: Added clean-up step * qa: Added a step for the acceptance test to restore before add. * ci: Renamed jobs * qa: Add matrix as executor * qa: Acceptance test: Added explicit restore and build * qa: Fixed build for comtestdotnet / 32-bit * qa: Removed force of using TLB * qa: Clean step is superflouos due to matrix * qa: DsCOM enforce usage of dscom executable * fix: Always enforce to use tool. MsBuild fails to host dSPACE.Runtime.InteropServices for TLB Export * doc: Added sequence diagram for TLB Export * docs: Fixed return for "result true" alt * chore: Improvement for packing Use the dependency property instead of AfterTargets declaration. * docs: Finished documentation The dscom build documentation is in a reviewable format. Should do as a first draft. * docs: Updated documentation As requested by @marklechtermann the user documentation has been moved to the common section. * docs: Dropped unmaintained docs As requested by @marklechtermann and @SOsterbrink the documentation folder with the unmaintained documentation was removed while the documentation of the build task was moved to the src folder * chore: Removed doubled entries Entries that are part of Directory.Build.props are removed from csproj. This was requested by @SOsterbrink in #102. * docs: Corrected links, one sentence per line The links have been updated to match the new location. The document now contains one sentence per line as requested by @SOsterbrink Co-authored-by: Carsten Igel <CIgel@dspace.de> Co-authored-by: Mark Lechtermann <mark.lechtermann@gmail.com>
- Loading branch information