private static string GetRepositoryAddress(AssemblyDefinition callingAssembly, AssemblyNameReference reference) { var builder = new StringBuilder(); builder.AppendFormat("/{0}/", callingAssembly.MainModule.Architecture.ToString()); if (reference.HasSilverlightToken() || callingAssembly.IsSilverlight()) builder.Append("Silverlight"); else builder.Append(callingAssembly.MainModule.Runtime.ToString()); builder.AppendFormat("/assembly?name={0}", reference.Name); builder.AppendFormat("&version={0}", reference.Version.ToString()); builder.AppendFormat("&token={0}", reference.GetPublicTokenKeyString()); builder.Append("&specificversion=false"); return builder.ToString(); }
private void BrowseAssembly(object sender, RoutedEventArgs e) { var dialog = new OpenFileDialog { Filter = "Assembly Files(*.exe, *.dll)|*.exe;*.dll" }; if (dialog.ShowDialog() == false) { Definition = null; DialogResult = false; return; } Definition = AssemblyDefinition.ReadAssembly(dialog.File.OpenRead()); if (Definition == null) Debugger.Break(); if (Definition.FullName == _reference.FullName) { if (Definition.IsSilverlight()) StorageService.CacheSilverlightAssembly(dialog.File.Name, dialog.File.OpenRead()); else StorageService.CacheNetAssembly(dialog.File.Name, dialog.File.OpenRead()); ApplicationModel.Current.AssemblyCache.AddAssembly(Definition); DialogResult = true; } }
private void LoadOrReplaceAssembly(AssemblyDefinition definition, AssemblyStream source) { var assemblyView = new AssemblyNode(definition, source); AddOrReplaceAssemblyView(definition.IsSilverlight() ? SilverlightAssemblies : NetAssemblies, assemblyView); }
private void UnloadAssemblyView(AssemblyDefinition definition) { var root = definition.IsSilverlight() ? SilverlightAssemblies : NetAssemblies; var view = root.Items.OfType<TreeNode>().FirstOrDefault(item => item.Component == definition); root.Items.Remove(view); }
private void LoadAssembly(AssemblyDefinition definition, AssemblyStream source) { var node = new AssemblyNode(definition, source); if (definition.IsSilverlight()) SilverlightAssemblies.Items.Add(node); else NetAssemblies.Items.Add(node); }
private void LoadOrReplaceAssembly(AssemblyDefinition definition) { var assemblyView = new AssemblyNode(definition); if (definition.IsSilverlight()) AddOrReplaceAssemblyView(SilverlightAssemblies, assemblyView); else AddOrReplaceAssemblyView(NetAssemblies, assemblyView); }