diff --git a/src/Compilers/VisualBasic/Portable/Symbols/Source/SourceAssemblySymbol.vb b/src/Compilers/VisualBasic/Portable/Symbols/Source/SourceAssemblySymbol.vb index cf48f50e7a200e8552bbeb4965cbba16ab4f0438..5eee01671c5e3b756855fb0c34d0ba793ee3509f 100644 --- a/src/Compilers/VisualBasic/Portable/Symbols/Source/SourceAssemblySymbol.vb +++ b/src/Compilers/VisualBasic/Portable/Symbols/Source/SourceAssemblySymbol.vb @@ -1193,6 +1193,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Symbols DeclaringCompilation.Options.CryptoPublicKey.IsEmpty AndAlso Identity.HasPublicKey AndAlso Not IsDelaySigned AndAlso + Not DeclaringCompilation.Options.PublicSign AndAlso Not StrongNameKeys.CanSign Then ' Since the container always contains both keys, the problem is that the key file didn't contain private key. diff --git a/src/Compilers/VisualBasic/Test/Emit/Attributes/InternalsVisibleToAndStrongNameTests.vb b/src/Compilers/VisualBasic/Test/Emit/Attributes/InternalsVisibleToAndStrongNameTests.vb index f759948ea49a294948c91420f5c52870e8ceeaa5..9018e7b8b7bf68064990fea6b95fcc609dfb296f 100644 --- a/src/Compilers/VisualBasic/Test/Emit/Attributes/InternalsVisibleToAndStrongNameTests.vb +++ b/src/Compilers/VisualBasic/Test/Emit/Attributes/InternalsVisibleToAndStrongNameTests.vb @@ -1639,9 +1639,11 @@ End Class Assert.True(compilation.Options.PublicSign) Assert.Null(compilation.Options.DelaySign) compilation.VerifyDiagnostics() + compilation.VerifyEmitDiagnostics() Dim stream As New MemoryStream() - compilation.Emit(stream) + Dim emitResult = compilation.Emit(stream) + Assert.True(emitResult.Success) stream.Position = 0 Using reader As New PEReader(stream) @@ -1660,21 +1662,21 @@ End Class Public Sub PublicSign_FromPublicKeyFileNoStrongNameProvider() - Dim snk = Temp.CreateFile().WriteAllBytes(TestResources.General.snKey) + Dim snk = Temp.CreateFile().WriteAllBytes(TestResources.General.snPublicKey) Dim options = TestOptions.ReleaseDll.WithCryptoKeyFile(snk.Path).WithPublicSign(True) PublicSignCore(options) End Sub Public Sub PublicSign_FromKeyFileAndStrongNameProvider() - Dim snk = Temp.CreateFile().WriteAllBytes(TestResources.General.snKey) + Dim snk = Temp.CreateFile().WriteAllBytes(TestResources.General.snKey2) Dim options = TestOptions.ReleaseDll.WithCryptoKeyFile(snk.Path).WithPublicSign(True).WithStrongNameProvider(s_defaultProvider) PublicSignCore(options) End Sub Public Sub PublicSign_FromKeyFileAndNoStrongNameProvider() - Dim snk = Temp.CreateFile().WriteAllBytes(TestResources.General.snKey) + Dim snk = Temp.CreateFile().WriteAllBytes(TestResources.General.snPublicKey2) Dim options = TestOptions.ReleaseDll.WithCryptoKeyFile(snk.Path).WithPublicSign(True) PublicSignCore(options) End Sub