A few days ago, I was going through the steps for compiling MIMWAL, as listed at http://ithinkthereforeidam.com/installing-the-mimwal/ and came across an interesting problem.
After I had rebuilt my Visual Studio package, I went to run Sign.cmd and kept getting the following error message
Error: File “MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.dll” Not Found. You need to compile WAL solution first! Make sure you use REBUILD Solution menu. Aborting script execution…
This was quite bizarre as I had not deviated from the steps listed in the above mentioned article. It was time to put on my Sherlock hat and find the culprit behind this error!
I opened the SolutionOutput folder and compared the contents to what was shown in the article and found something interesting. The dll mentioned in the error was indeed missing!
Also the file MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.pdb was missing.
This meant that there must have been an error when rebuilding the package in Visual Studio. I alt+tabbed to my Visual Studio screen and in the output pane, saw something interesting. It showed that there had been some issues while copying MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.dll to the SourceOutput folder.
WorkflowActivityLibrary -> C:\MIMWAL-2.16.1028.0\src\WorkflowActivityLibrary\bin\Release\MicrosoftServices.IdentityManagement.WorkflowActivityLibrary.dll
1> Does C:\MIMWAL-2.16.1028.0\src\SolutionOutput specify a file name
1> or directory name on the target
1> (F = file, D = directory)? ?
seemed to indicate that when Visual Studio was trying to copy the two missing files, it hadn’t been able to determine if the destination folder SourceOutput was a directory or a file. This resulted in Visual Studio skipping the copy of these files. Doing some investigation, I found that the MIMWAL source package didn’t contain a .\src\SourceOutput folder. This explained why Visual Studio was showing the above warnings.
Based on my findings, I found two solutions that helped resolve the issue
Rebuild the Visual Studio Package again. On the second try, since the SourceOutput directory now exists, the files will be successfully copied.
Before rebuilding the MIMWAL package, create a subfolder called SourceOutput inside the src folder
My preference is for Solution 2 as it means that I won’t get any errors.
After successfully rebuilding the MIMWAL package, I ran sign.cmd and this time around – Success! I got the expected result.
I hope this blog helps anyone else who might be having issues with compiling MIMWAL and running sign.cmd