Hi,
Since moving to VS2010 I seem to have gotten the "Unable to obtain public key for StrongNameKeyPair" error trying to mock and interface.
I am running VS2010, .Net 4.0, Typemock 6.0.3.0 MBUbit/Gallio. All are x64 flavour. I am running as Admin.
Code and call stack below. This happend to me last year too.
Yell if you need any other info.
Cheers
Bart
Code to repro.
using MbUnit.Framework;
using TypeMock.ArrangeActAssert;
namespace ClassLibrary1
{
[Isolated]
[TestFixture]
public class Class1
{
[Test] public void TestInterface() { var x = Isolate.Fake.Instance<IMyInterface>(); } // FAIL
[Test] public void TestClass() { var x = Isolate.Fake.Instance<MyClass>(); } // PASS
}
public interface IMyInterface { }
public class MyClass { }
}
This is the stack running the test.
TestInterface : Failed*** Failures ***
Execute
System.ArgumentException: Unable to obtain public key for StrongNameKeyPair.
at System.Reflection.StrongNameKeyPair.ComputePublicKey()
at System.Reflection.StrongNameKeyPair.get_PublicKey()
at System.Reflection.Emit.AssemblyBuilder..ctor(AppDomain domain, AssemblyName name, AssemblyBuilderAccess access, String dir, Evidence evidence, PermissionSet requiredPermissions, PermissionSet optionalPermissions, PermissionSet refusedPermissions, StackCrawlMark& stackMark, IEnumerable`1 unsafeAssemblyAttributes, SecurityContextSource securityContextSource)
at System.Reflection.Emit.AssemblyBuilder.InternalDefineDynamicAssembly(AssemblyName name, AssemblyBuilderAccess access, String dir, Evidence evidence, PermissionSet requiredPermissions, PermissionSet optionalPermissions, PermissionSet refusedPermissions, StackCrawlMark& stackMark, IEnumerable`1 unsafeAssemblyAttributes, SecurityContextSource securityContextSource)
at System.AppDomain.InternalDefineDynamicAssembly(AssemblyName name, AssemblyBuilderAccess access, String dir, Evidence evidence, PermissionSet requiredPermissions, PermissionSet optionalPermissions, PermissionSet refusedPermissions, StackCrawlMark& stackMark, IEnumerable`1 assemblyAttributes, SecurityContextSource securityContextSource)
at System.AppDomain.DefineDynamicAssembly(AssemblyName name, AssemblyBuilderAccess access)
at d9.b()
at d9.a(Type A_0, String A_1)
at d9.a(Type A_0, Object[] A_1)
at if.Instance[T](Members behavior)
at ClassLibrary1.Class1.TestInterface() in c:usersfibrichdocumentsisual studio 2010ProjectsClassLibrary1ClassLibrary1Class1.cs:line 17
at TypeMock.MockManager.a(String A_0, String A_1, Object A_2, Object A_3, Boolean A_4, Object[] A_5)
at TypeMock.InternalMockManager.getReturn(Object that, String typeName, String methodName, Object methodParameters, Boolean isInjected)
at ClassLibrary1.Class1.TestInterface() in c:usersfibrichdocumentsisual studio 2010ProjectsClassLibrary1ClassLibrary1Class1.cs:line 16
System.ArgumentException: Unable to obtain public key for StrongNameKeyPair.
at System.Reflection.StrongNameKeyPair.ComputePublicKey()
at System.Reflection.StrongNameKeyPair.get_PublicKey()
at System.Reflection.Emit.AssemblyBuilder..ctor(AppDomain domain, AssemblyName name, AssemblyBuilderAccess access, String dir, Evidence evidence, PermissionSet requiredPermissions, PermissionSet optionalPermissions, PermissionSet refusedPermissions, ref StackCrawlMark stackMark, IEnumerable`1 unsafeAssemblyAttributes, SecurityContextSource securityContextSource)
at System.Reflection.Emit.AssemblyBuilder.InternalDefineDynamicAssembly(AssemblyName name, AssemblyBuilderAccess access, String dir, Evidence evidence, PermissionSet requiredPermissions, PermissionSet optionalPermissions, PermissionSet refusedPermissions, ref StackCrawlMark stackMark, IEnumerable`1 unsafeAssemblyAttributes, SecurityContextSource securityContextSource)
at System.AppDomain.InternalDefineDynamicAssembly(AssemblyName name, AssemblyBuilderAccess access, String dir, Evidence evidence, PermissionSet requiredPermissions, PermissionSet optionalPermissions, PermissionSet refusedPermissions, ref StackCrawlMark stackMark, IEnumerable`1 assemblyAttributes, SecurityContextSource securityContextSource)
at System.AppDomain.DefineDynamicAssembly(AssemblyName name, AssemblyBuilderAccess access)
at d9.b()
at d9.a(Type A_0, String A_1)
at d9.a(Type A_0, Object[] A_1)
at if.Instance(Members behavior)
at ClassLibrary1.Class1.TestInterface() in Class1.cs: line 17
at TypeMock.MockManager.a(String A_0, String A_1, Object A_2, Object A_3, Boolean A_4, Object[] A_5)
at TypeMock.InternalMockManager.getReturn(Object that, String typeName, String methodName, Object methodParameters, Boolean isInjected)
at ClassLibrary1.Class1.TestInterface() in Class1.cs: line 16