Permalink
Browse files

Including information how to debug ReSharper plugins

  • Loading branch information...
1 parent 2a459e7 commit aa2d271bef4f7d31fa5773a2015c1e2e0ccb7bbe @agross agross committed Jan 18, 2012
View
@@ -64,6 +64,16 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Machine.Specifications.ReSh
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Machine.Specifications.ReSharperRunner.6.1", "Source\Machine.Specifications.ReSharperRunner.6.1\Machine.Specifications.ReSharperRunner.6.1.csproj", "{AEF08081-3BB5-4654-9F21-C066647B370A}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Machine.Specifications.ReSharperRunner.Debug.VS2010", "Source\Machine.Specifications.ReSharperRunner.Debug.VS2010\Machine.Specifications.ReSharperRunner.Debug.VS2010.csproj", "{79A3A8CA-CAEF-4DC6-83C9-E19A0C720B0E}"
+ ProjectSection(ProjectDependencies) = postProject
+ {EA52971B-2916-4A32-8F1E-57CDA9CE8EB3} = {EA52971B-2916-4A32-8F1E-57CDA9CE8EB3}
+ {C47B3023-AC8D-4DFD-AAC2-006C4772B699} = {C47B3023-AC8D-4DFD-AAC2-006C4772B699}
+ {5ED0B02E-7E2D-413D-ABE9-6DB07116E2CE} = {5ED0B02E-7E2D-413D-ABE9-6DB07116E2CE}
+ {AEF08081-3BB5-4654-9F21-C066647B370A} = {AEF08081-3BB5-4654-9F21-C066647B370A}
+ {F06E1AB8-7F34-4C32-BC4D-558CAA94DB7C} = {F06E1AB8-7F34-4C32-BC4D-558CAA94DB7C}
+ {F78E1AB8-7F34-4C32-BC4D-558CAA94DB7C} = {F78E1AB8-7F34-4C32-BC4D-558CAA94DB7C}
+ EndProjectSection
+EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Machine.Specifications.GallioAdapter", "Source\Machine.Specifications.GallioAdapter\Machine.Specifications.GallioAdapter.csproj", "{D1B0D26E-BEA9-45EF-87C2-0ED5FC9CAC3F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Machine.Specifications.GallioAdapter.TestResources", "Source\Machine.Specifications.GallioAdapter.TestResources\Machine.Specifications.GallioAdapter.TestResources.csproj", "{263ABAC8-C6B2-497D-93E3-3773849CEDD3}"
@@ -194,6 +204,10 @@ Global
{AEF08081-3BB5-4654-9F21-C066647B370A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AEF08081-3BB5-4654-9F21-C066647B370A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AEF08081-3BB5-4654-9F21-C066647B370A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {79A3A8CA-CAEF-4DC6-83C9-E19A0C720B0E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {79A3A8CA-CAEF-4DC6-83C9-E19A0C720B0E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {79A3A8CA-CAEF-4DC6-83C9-E19A0C720B0E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {79A3A8CA-CAEF-4DC6-83C9-E19A0C720B0E}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -220,6 +234,7 @@ Global
{C47B3023-AC8D-4DFD-AAC2-006C4772B699} = {3D475ECE-C800-4087-8FC5-B9A13E76ABC4}
{5ED0B02E-7E2D-413D-ABE9-6DB07116E2CE} = {3D475ECE-C800-4087-8FC5-B9A13E76ABC4}
{AEF08081-3BB5-4654-9F21-C066647B370A} = {3D475ECE-C800-4087-8FC5-B9A13E76ABC4}
+ {79A3A8CA-CAEF-4DC6-83C9-E19A0C720B0E} = {3D475ECE-C800-4087-8FC5-B9A13E76ABC4}
{490496AF-BEA5-4454-88B0-F73C62C22987} = {1F11BF5C-810C-4FC8-AFF4-7E416A867F39}
{97BD55A5-03CA-4E8E-8AE0-55722C39E0AF} = {1F11BF5C-810C-4FC8-AFF4-7E416A867F39}
{50E85B88-7E0C-4CE7-BD8D-BA9C618A6844} = {1F11BF5C-810C-4FC8-AFF4-7E416A867F39}
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>8.0.30703</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{79A3A8CA-CAEF-4DC6-83C9-E19A0C720B0E}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Machine.Specifications.ReSharperRunner.Debug.VS2010</RootNamespace>
+ <AssemblyName>Machine.Specifications.ReSharperRunner.Debug.VS2010</AssemblyName>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="System.Core" />
+ <Reference Include="Microsoft.CSharp" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project>
@@ -0,0 +1,18 @@
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Machine.Specifications.ReSharperRunner.Debug.VS2010")]
+[assembly: AssemblyDescription("Dummy Project for Visual Studio Debugger")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("2eb66c94-d3f3-4daa-9f86-347ef41bf2ea")]
View
@@ -0,0 +1,19 @@
+1. Create a new VS root suffix by running
+ devenv.exe /rootsuffix mspec
+2. Open VS and load Machine.Specifications.sln
+3. Navigate to the Machine.Specifications.ReSharperRunner.Debug.VS2010 project
+4. Set this project as the startup project
+5. Open the project's properties, under Debug, select:
+ Start external program: <VS install dir>\Common7\IDE\devenv.exe
+ Command line arguments: /rootsuffix mspec /ReSharper.Internal /ReSharper.Plugin "<MSpec solution dir>\Build\Debug\<MSpec runner>.dll"
+
+Optional:
+To make debugging JetBrains' external task runner process (everything inside RecursiveMSpecTaskRunner) easier, check
+ReSharper | Options | Tools/Unit Testing | Enable Debug (Internal)
+in the debugged Visual Studio instance.
+
+Visual Studio will choose the debugger based on the framework version the plugin is compiled against. This why we need
+a debugger project for each version of Visual Studio ReSharper supports. To debug the plugin for
+- ReSharper on VS 2010, use Machine.Specifications.ReSharperRunner.Debug.VS2010
+- ReSharper on VS 2008, *transiently* switch the Machine.Specifications.ReSharperRunner.Debug.VS2010 to be compiled
+ against .NET 3.5 (or create a new debugger project for .NET Framework 3.5).

0 comments on commit aa2d271

Please sign in to comment.