I am trying to build the version 4.3.0 release. But I am getting the known error:
Could not load file or assembly 'DotNetOpenAuth.Core' or one of its dependencies. Strong name signature could not be verified. The assembly may have been tampered with, or it was delay signed but not fully signed with the correct private key. (Exception from HRESULT: 0x80131045)
I tried several options, but didn't manage.
The problem is that I have to associate with an OpenId provider and they tell me it will not work unless I change protected string GetSignature
method.
The line:
MessageDictionary dictionary = this.Channel.MessageDescriptions.GetAccessor(signedMessage);
according to them has to be changed to:
MessageDictionary dictionary = this.Channel.MessageDescriptions.GetAccessor(signedMessage, true);
In this question it was suggested, it could be explained how to compile it. Could anybody still do so? Numerous google searches didn't lead me to a solution.
Anyone can help me with this? I know OpenId 2.0 is obsolete now, but the provider will not switch to Open Connect any time soon.
Above comment didn't get me any further.
After some more trying I figured out that since the private part is missing from the key, signing would be impossible (duh).
So I decided to simply remove the signing by replace the following true values to false in all csproj files. Faster to mass replace in notepad++ than manual in all projects in visual studio.
<PropertyGroup>
<SignAssembly>true</SignAssembly>
</PropertyGroup>
<PropertyGroup>
<DelaySign>true</DelaySign>
</PropertyGroup>
Above properties are under the Project node.
After removing I could compile and distribute.
If you want to do it through the Visual Studio IDE, rightclick your project, then properties and go to the Signing tab. Turn of the signing.
User contributions licensed under CC BY-SA 3.0