/// <summary> /// Removes a reference via the DTE. /// </summary> /// <remarks>This is identical to VsProjectSystem.RemoveReference except in the way we process exceptions.</remarks> private void RemoveDTEReference(string name) { // Get the reference name without extension string referenceName = Path.GetFileNameWithoutExtension(name); // Remove the reference from the project AssemblyReference reference = null; try { reference = Project.Object.References.Item(referenceName); if (reference != null) { reference.Remove(); Logger.Log(MessageLevel.Debug, VsResources.Debug_RemoveReference, name, ProjectName); } } catch (Exception ex) { MessageLevel messageLevel = MessageLevel.Warning; if (reference != null && reference.ReferenceKind == AssemblyReferenceType.AssemblyReferenceConfig) { // Bug 2319: Strong named assembly references are specified via config and may be specified in the root web.config. Attempting to remove these // references always throws and there isn't an easy way to identify this. Instead, we'll attempt to lower the level of the message so it doesn't // appear as readily. messageLevel = MessageLevel.Debug; } Logger.Log(messageLevel, ex.Message); } }
/// <summary> /// Removes a reference via the DTE. /// </summary> /// <remarks>This is identical to VsProjectSystem.RemoveReference except in the way we process exceptions.</remarks> private void RemoveDTEReference(string name) { ThreadHelper.ThrowIfNotOnUIThread(); // Get the reference name without extension var referenceName = Path.GetFileNameWithoutExtension(name); // Remove the reference from the project AssemblyReference reference = null; try { reference = EnvDTEProjectUtility.GetAssemblyReferences(VsProjectAdapter.Project).Item(referenceName); if (reference != null) { reference.Remove(); NuGetProjectContext.Log(ProjectManagement.MessageLevel.Debug, Strings.Debug_RemoveReference, name, ProjectName); } } catch (Exception ex) { var messageLevel = ProjectManagement.MessageLevel.Warning; if (reference != null && reference.ReferenceKind == AssemblyReferenceType.AssemblyReferenceConfig) { // Bug 2319: Strong named assembly references are specified via config and may be specified in the root web.config. Attempting to remove these // references always throws and there isn't an easy way to identify this. Instead, we'll attempt to lower the level of the message so it doesn't // appear as readily. messageLevel = ProjectManagement.MessageLevel.Debug; } NuGetProjectContext.Log(messageLevel, ex.Message); } }