private static bool IsSilverlightMscorlib(IProjectToAssemblyReference reference) { var assemblyNameInfo = reference.ReferenceTarget.AssemblyName; var publicKeyTokenBytes = assemblyNameInfo.GetPublicKeyToken(); if (publicKeyTokenBytes == null) { return(false); } // Not sure if this is the best way to do this, but the public key token for mscorlib on // the desktop if "b77a5c561934e089". On Silverlight, it's "7cec85d7bea7798e" var publicKeyToken = AssemblyNameExtensions.GetPublicKeyTokenString(publicKeyTokenBytes); return(assemblyNameInfo.Name == "mscorlib" && publicKeyToken == SilverlightMscorlibPublicKeyToken); }
private Dictionary <string, string> BuildReplacementParameters() { Dictionary <string, string> param = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase); if (!String.IsNullOrEmpty(Config.Current.ProjectAssemblyPath)) { if (File.Exists(Config.Current.ProjectAssemblyPath)) { try { AssemblyName assemblyName = AssemblyName.GetAssemblyName(Config.Current.ProjectAssembly); param.Add("$SharePoint.Project.AssemblyFullName$", assemblyName.FullName); param.Add("$SharePoint.Project.AssemblyFileName$", assemblyName.Name); param.Add("$SharePoint.Project.AssemblyFileNameWithoutExtension$", Path.GetFileNameWithoutExtension(assemblyName.Name)); param.Add("$SharePoint.Project.AssemblyPublicKey$", AssemblyNameExtensions.GetPublicKey(assemblyName)); string keyToken = AssemblyNameExtensions.GetPublicKeyToken(assemblyName); param.Add("$SharePoint.Project.AssemblyPublicKeyToken$", keyToken); param.Add("$SharePoint.Project.AssemblyVersion$", AssemblyNameExtensions.GetVersion(assemblyName)); param.Add("$SharePoint.Project.AssemblyCulture$", AssemblyNameExtensions.GetCulture(assemblyName)); if (string.IsNullOrEmpty(keyToken)) { Log.Warning("It seems that the defined Project Assembly is not strong named. Its recommended to strong name the assembly!"); } } catch { Log.Error("The defined Project Assembly seems not to be a valid assembly!"); } } else { Log.Error("Can not find the defined Project Assembly : " + Config.Current.ProjectAssemblyPath); } } param.Add("$SharePoint.Package.Name$", Config.Current.WSPName); param.Add("$SharePoint.Package.FileName$", Config.Current.WSPName); param.Add("$SharePoint.Package.FileNameWithoutExtension$", Path.GetFileNameWithoutExtension(Config.Current.WSPName)); param.Add("$SharePoint.Package.Id$", Config.Current.SolutionId.ToString()); return(param); }