Mike May - October 2017, Updated March 2018, June 2018
Documnetation of the library user is at http://mikedamay.co.uk/PureDI
- No Warnings except in Sandcastle Help Builder (innocuous)
- All Tests Pass
- Useable (except for the absence of real-world hardening)
- The Sandcastle API docs for DependencyInjector.CreateAndInjectDependencies is corrupted. Maybe a Sandcastle/SHFB problem
VS2017 (2) Sandcastle build helper extension (2018.5.29).
Alternatively: If you don't need to build User Guide and API docs or you are building on Linux or MacOs then Rider or VSCode can be used Select the appropriate Build Configuration
The documentation can be built only on Windows (not Linux or MacOs) and requires VS2017.
Use the configuration: Debug (WindowsOnly with Sandcastle docs)
The build process takes the files in sandDoc/Contents and generates sandDoc/GeneratedHelp as HTML, js, css etc. The contents of sandDoc/GeneratedHelp can be copied into a web folder, say /PureDI for publication. Currently http://mikedamay.co.uk/PureDI contains the latest published docs. A reference to PureDI.csproj under "Documentation Sources" is sufficient to drag in the binary from which API details are extracted.
The following steps are requred to build the User Guide and API documentation:
-
Add sandDoc VS project to the PureDI solution. (The sandDoc project bulds that User Guide and API Docs.) (Note that the PureDI solution may be persisted with the sandBox project removed from the .sln file as the sandDoc project requires the full .NET framework so its inclusion by default would break non-Windows builds - Jetbrains Rider is not sufficiently respectful of build configurations. It also slows down the build). The sandBox project is included in the PureDI git repo under the PureDI solution directory.
-
Make changes to the Content folder if necessary. (See Note C, below)
43 Do Rebuild Solution - but note the issue (Note D) below.
-
Reverse steps 1) .
-
Copy contents of sandDoc/GeneratedHelp to the document directory of some website.
Note A. The Help Build barfs (unable to find the System assembly) when attempting to build with a target of netstandard2.0.
Note B. The Sandcastle Help Builder is version 2018.5.29
Note C. Help Builder Gotcha: make sure you change the text of Version History when you add version. Simply adding the version using ContentLayout.content is not sufficient.
Note D. Sometimes on Rebuild Solution the SandDoc project will fail to find PureDI.dll - to fix follow Rebuild Solution with Build Solution and it should build OK. Presumably this relates to concurrent builds in some way.
nuspec pack fails dotnet pack & msbuild /t:pack produce a file but ignore our nuspec package which has to be merged manually (See Release Activity 9, below)
0 Remove SandDoc project from solution
- Build & Test on Windows
- Build & Test on Linux
- Build & Test on Mac
- Check that PureDI AssemblyInfo AssemblyVersion is correct
- Check that PureDI AssemblyInfo AssemblyFileVersion is correct
- Update version in PureDI.nuspec
- Generate nupkg
- Change name of nupkg to reflect version
- Merge in nuspec file into nupkg manually
- Create branch for release
- track branch in remote
- change version number of file in publish.bat
- substitute secret in publish.bat
- run publish.bat
- unsubstitute secret in publish.bat
- final check in on branch
- merge branch into master
- push master
- Upload latest help files to mikedamay.co.uk/PureDI
- Test nuget install on Mac or Linux or Windows