Browse Source

Add PublicKeyToken, StrongName and Identity to EnvDTE.Reference

Used by Entity Framework 6
pull/263/head
Matt Ward 12 years ago
parent
commit
d5d7fd4281
  1. 27
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/Reference.cs
  2. 4
      src/AddIns/Misc/PackageManagement/SharpDevelop.EnvDTE/Configuration/AssemblyInfo.vb
  3. 3
      src/AddIns/Misc/PackageManagement/SharpDevelop.EnvDTE/Src/Reference.vb
  4. 70
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/Reference3Tests.cs

27
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/Reference.cs

@ -40,5 +40,32 @@ namespace ICSharpCode.PackageManagement.EnvDTE @@ -40,5 +40,32 @@ namespace ICSharpCode.PackageManagement.EnvDTE
return null;
}
}
public string Identity {
get { return referenceProjectItem.ShortName; }
}
public string PublicKeyToken {
get {
if (referenceProjectItem.PublicKeyToken != "null") {
return referenceProjectItem.PublicKeyToken;
}
return String.Empty;
}
}
public bool StrongName {
get { return HasVersion() && HasPublicKeyToken(); }
}
bool HasVersion()
{
return referenceProjectItem.Version != null;
}
bool HasPublicKeyToken()
{
return !String.IsNullOrEmpty(PublicKeyToken);
}
}
}

4
src/AddIns/Misc/PackageManagement/SharpDevelop.EnvDTE/Configuration/AssemblyInfo.vb

@ -13,7 +13,7 @@ Imports System.Runtime.InteropServices @@ -13,7 +13,7 @@ Imports System.Runtime.InteropServices
<assembly: AssemblyConfiguration("")>
<assembly: AssemblyCompany("ic#code")>
<assembly: AssemblyProduct("SharpDevelop")>
<assembly: AssemblyCopyright("2000-2012 AlphaSierraPapa for the SharpDevelop Team")>
<assembly: AssemblyCopyright("2000-2013 AlphaSierraPapa for the SharpDevelop Team")>
<assembly: AssemblyTrademark("")>
<assembly: AssemblyCulture("")>
@ -28,4 +28,4 @@ Imports System.Runtime.InteropServices @@ -28,4 +28,4 @@ Imports System.Runtime.InteropServices
' You can specify all values by your own or you can build default build and revision
' numbers with the '*' character (the default):
<assembly: AssemblyVersion("4.3.0")>
<assembly: AssemblyVersion("4.4.0")>

3
src/AddIns/Misc/PackageManagement/SharpDevelop.EnvDTE/Src/Reference.vb

@ -3,9 +3,12 @@ @@ -3,9 +3,12 @@
Namespace EnvDTE
Public Interface Reference
ReadOnly Property Identity() As String
ReadOnly Property Name() As String
ReadOnly Property Path() As String
ReadOnly Property PublicKeyToken As String
ReadOnly Property SourceProject() As Project
ReadOnly Property StrongName As Boolean
Sub Remove()
End Interface

70
src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/Reference3Tests.cs

@ -118,5 +118,75 @@ namespace PackageManagement.Tests.EnvDTE @@ -118,5 +118,75 @@ namespace PackageManagement.Tests.EnvDTE
Assert.AreEqual(@"c:\Program Files\Microsoft\Reference Assemblies\v4\System.Xml.dll", path);
}
[Test]
public void PublicKeyToken_ReferenceHasPublicKeyToken_ReturnsPublicKeyToken()
{
CreateReference("ICSharpCode.Core, Version=4.4.0.0, Culture=neutral, PublicKeyToken=f829da5c02be14ee");
string publicKeyToken = reference.PublicKeyToken;
Assert.AreEqual("f829da5c02be14ee", publicKeyToken);
}
[Test]
public void PublicKeyToken_ReferenceHasNullPublicKeyToken_ReturnsEmptyString()
{
CreateReference("ICSharpCode.Core, Version=4.4.0.0, Culture=neutral, PublicKeyToken=null");
string publicKeyToken = reference.PublicKeyToken;
Assert.AreEqual(String.Empty, publicKeyToken);
}
[Test]
public void StrongName_ReferenceHasStrongName_ReturnsTrue()
{
CreateReference("ICSharpCode.Core, Version=4.4.0.0, Culture=neutral, PublicKeyToken=f829da5c02be14ee");
bool result = reference.StrongName;
Assert.IsTrue(result);
}
[Test]
public void StrongName_ReferenceMissingVersion_ReturnsFalse()
{
CreateReference("ICSharpCode.Core, Culture=neutral, PublicKeyToken=f829da5c02be14ee");
bool result = reference.StrongName;
Assert.IsFalse(result);
}
[Test]
public void StrongName_ReferenceMissingPublicKeyToken_ReturnsFalse()
{
CreateReference("ICSharpCode.Core, Version=4.4.0.0, Culture=neutral");
bool result = reference.StrongName;
Assert.IsFalse(result);
}
[Test]
public void StrongName_ReferenceHasNullPublicKeyToken_ReturnsFalse()
{
CreateReference("ICSharpCode.Core, Version=4.4.0.0, Culture=neutral, PublicKeyToken=null");
bool result = reference.StrongName;
Assert.IsFalse(result);
}
[Test]
public void Identity_FullyQualifiedReference_ReturnsAssemblyShortName()
{
CreateReference("ICSharpCode.Core, Version=4.4.0.0, Culture=neutral, PublicKeyToken=f829da5c02be14ee");
string identity = reference.Identity;
Assert.AreEqual("ICSharpCode.Core", identity);
}
}
}

Loading…
Cancel
Save