Example #1
0
        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);
        }
Example #2
0
        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);
            }
        }
Example #4
0
        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);
        }
Example #5
0
        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");
        }
Example #6
0
 private static string DotNetAssemblyName(string vsVersion)
 {
     return(VisualizerAssemblyNameFormat.GetDotNetVisualizerName(vsVersion));
 }
Example #7
0
 private static string TargetAssemblyName(string vsVersion)
 {
     return(VisualizerAssemblyNameFormat.GetTargetVisualizerAssemblyName(vsVersion, AssemblyModelLocation));
 }