public bool Execute() { Log.VisualStudioVersion = VisualStudioVer; try { string visualizerAssemblyName = VisualizerAssemblyNameFormat.GetTargetVisualizerAssemblyName(VisualStudioVer, Assembly); string targetInstallationPath = VisualStudioOption.GetVisualizerDestinationFolder(VisualStudioVer); string visualizerFullPath = Path.Combine(targetInstallationPath, visualizerAssemblyName); if (FS.FileSystem.File.Exists(visualizerFullPath)) { FS.FileSystem.File.Delete(visualizerFullPath); } //check if pdb also exists and delete it string visualizerPdbFullPath = Path.ChangeExtension(visualizerFullPath, "pdb"); if (FS.FileSystem.File.Exists(visualizerPdbFullPath)) { FS.FileSystem.File.Delete(visualizerPdbFullPath); } } catch (System.Exception exception) { Log.Write(exception, "Error During cleanup"); BuildWarningEventArgs errorEvent = new BuildWarningEventArgs("Debugger Visualizer Cleanup", "", "CleanBuildTask", 0, 0, 0, 0, $"There was an error cleaning custom debugger visualizers", "", "LINQBridgeVs"); BuildEngine.LogWarningEvent(errorEvent); exception.Capture(VisualStudioVer, message: "Error during project cleaning"); } return(true); }
public bool Execute() { RavenWrapper.VisualStudioVersion = VisualStudioVer; Log.VisualStudioVersion = VisualStudioVer; try { string visualizerAssemblyName = VisualizerAssemblyNameFormat.GetTargetVisualizerAssemblyName(VisualStudioVer, Assembly); string targetInstallationPath = VisualStudioOption.GetVisualizerDestinationFolder(VisualStudioVer); string visualizerFullPath = Path.Combine(targetInstallationPath, visualizerAssemblyName); if (File.Exists(visualizerFullPath)) { File.Delete(visualizerFullPath); } //check if pdb also exists and delete it string visualizerPdbFullPath = Path.ChangeExtension(visualizerFullPath, "pdb"); if (File.Exists(visualizerPdbFullPath)) { File.Delete(visualizerPdbFullPath); } } catch (System.Exception exception) { RavenWrapper.Instance.Capture(exception, message: "Error during project cleaning"); return(false); } return(true); }
private void Create3RdPartyVisualizers() { try { if (!CommonRegistryConfigurations.Map3RdPartyAssembly(SolutionName, VisualStudioVer)) { return; } IEnumerable <string> assemblies = Crawler.FindDependencies(ProjectPath); foreach (string assemblyPath in assemblies) { string assemblyName; try { assemblyName = Path.GetFileNameWithoutExtension(assemblyPath); } catch { continue; //in case it is not a well formed path } //visualizer target name based on visual studio version string targetAssemblyName = VisualizerAssemblyNameFormat.GetTargetVisualizerAssemblyName(VisualStudioVer, assemblyName); string targetInstallationFilePath = Path.Combine(VisualizerDestinationFolder, targetAssemblyName); //no need to recreate the 3rd party assembly all the time if (FS.FileSystem.File.Exists(targetInstallationFilePath)) { continue; } VisualizerAttributeInjector attributeInjector = new VisualizerAttributeInjector(_dynamicVisualizerDllAssemblyPath, VisualStudioVer); attributeInjector.MapTypesFromAssembly(assemblyPath); attributeInjector.SaveDebuggerVisualizer(targetInstallationFilePath); } } catch (Exception e) { const string errorMessage = "Error Mapping 3rd Party Assemblies"; Log.Write(e, errorMessage); BuildWarningEventArgs errorEvent = new BuildWarningEventArgs("Debugger Visualizer Creator", "", "MapperBuildTask", 0, 0, 0, 0, $"There was an error creating custom debugger visualizers for 3rd Party Assemblies. Disable it in Tools->Options->BridgeVs->Map3RdPartyAssembly", "", "LINQBridgeVs"); BuildEngine.LogWarningEvent(errorEvent); e.Capture(VisualStudioVer, message: errorMessage); } }
public bool Execute() { string visualizerAssemblyName = VisualizerAssemblyNameFormat.GetTargetVisualizerAssemblyName(VisualStudioVer, Assembly); string targetInstallationPath = VisualStudioOptions.GetVisualizerDestinationFolder(VisualStudioVer); string visualizerFullPath = Path.Combine(targetInstallationPath, visualizerAssemblyName); if (File.Exists(visualizerFullPath)) { File.Delete(visualizerFullPath); } //check if pdb also exists and delete it string visualizerPdbFullPath = visualizerFullPath.Replace(".dll", ".pdb"); if (File.Exists(visualizerPdbFullPath)) { File.Delete(visualizerPdbFullPath); } return(true); }
public void Clean_BuildTask_Test_V12_Should_Succeed() { const string vsVersion = "12.0"; string visualizerAssemblyName = VisualizerAssemblyNameFormat.GetTargetVisualizerAssemblyName(vsVersion, _assemblyModel.Location); string targetInstallationPath = VisualStudioOption.GetVisualizerDestinationFolder(vsVersion); string visualizerFullPath = Path.Combine(targetInstallationPath, visualizerAssemblyName); string visualizerPdbFullPath = visualizerFullPath.Replace(".dll", ".pdb"); CreateDllAndPdb(visualizerFullPath, visualizerPdbFullPath); CleanBuildTask cleanBuildTask = new CleanBuildTask { Assembly = _assemblyModel.Location, VisualStudioVer = vsVersion }; bool result = cleanBuildTask.Execute(); Assert.IsTrue(result, $"Clean build task V{vsVersion} failed"); Assert.IsFalse(File.Exists(visualizerFullPath), $"{visualizerFullPath} hasn't been deleted correctly"); Assert.IsFalse(File.Exists(visualizerPdbFullPath), $"{visualizerPdbFullPath} hasn't been deleted correctly"); }
private static string DotNetAssemblyName(string vsVersion) { return(VisualizerAssemblyNameFormat.GetDotNetVisualizerName(vsVersion)); }
private static string TargetAssemblyName(string vsVersion) { return(VisualizerAssemblyNameFormat.GetTargetVisualizerAssemblyName(vsVersion, AssemblyModelLocation)); }