🎉👍 First of all, thank you for contributing! 👍🎉
This document contains guidelines and helpful information for contributing to the dkim-exchange project.
If you want to help us supporting new Exchange Versions, please follow the steps below.
For each Exchange Version we need the following files within the Lib directory:
C:\Program Files\Microsoft\Exchange Server\V14\Public (or the corresponding directory for your version) Microsoft.Exchange.Data.Common.dll Microsoft.Exchange.Data.Common.xml Microsoft.Exchange.Data.Transport.dll Microsoft.Exchange.Data.Transport.xml
- Create a fork of our project in your account
- Create a new branch for your changes
- Add the above mentioned files (.dll and .xml) to your fork. Create a new directory for the corresponding Exchange version in the Lib directory.
- If you are not familiar with Visual Studio or coding in C# please stop here and just create a new pull request. Otherwise continue with the following steps.
- Now you need to change each of the following files to include the new .dll. Refer e.g. to this commit: f83924a
- DkimSigner.sln
- README.md
- Src/Configuration.DkimSigner/Constants.cs
- Src/Exchange.DkimSigner/Exchange.DkimSigner.csproj
- coverity.proj
- install.ps1
- Make sure that everything compiles. See Compiling
- Create a pull request
There are two projects in the Visual Studio Solution.
To compile the Configuration.DKIMSigner
executable just go to Project Menu and then Build Solution
.
To compile the .dll's for the Exchange Agent, go to Project Menu and then select Batch Build
. Make sure all the configurations are selected, then press Build. This will automatically link the agent DLLs with the correct version of the Exchange libraries.
- Make sure that the new version number is set correctly in the Visual Studio Project AssemblyInfo (Right click project -> Settings -> Assembly Info). This needs to be updated for both projects, the configurator and the lib
- Optionally update the Copyright year
- Update the CHANGELOG.md
- Build all the .dll versions and the Configurator as described in the Compiling Section
- Commit the changed files, including resulting binary files (
Src/Exchange.DkimSigner/bin
, andSrc/Configuration.DkimSigner/bin/Release
) - Push all the changes
- Go to GitHub -> Releases (https://github.com/Pro/dkim-exchange/releases)
- Create a new release. As the tag use the same version you used in step 1, e.g.
v3.2.0
. The title should summarize the release. And as text use the change log content. Just refer to previous releases. - Create a new .zip File for the binary:
Right-click on
Src/Configuration.DkimSigner/bin/Release
and then zip the folder. Rename the resulting .zip toConfiguration.DkimSigner.zip
. Make sure that this .zip does not contain any subfolders, but all the files directly. - Add the .zip to the release
- Create the release as a pre-release. This will allow other users to test it as a beta version
- After two weeks or so just remove the pre-release flag, and it will be picked up by the configurator.exe as a new update
If you want to debug the .dll on your Exchange Server, you need to install Visual Studio Remote Debugging on the Server.
- After the Remote Debugging Tools are installed on the Server, open Visual Studio
- Compile the .dll with Debug information
- Copy the recompiled .dll to the server
- In Visual Studio select Debug->Attach to Process
- Under 'Qualifier' input the server IP or Host Name
- Select "Show processes from all users"
- Select the process
EdgeTransport.exe
and then press 'Attach' - When reached, the process should stop at the breakpoint