Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?

This is a step by step guide to using this workaround for Godot 3.2.3+ support in Visual Studio: https://github.com/godotengine/godot-csharp-visualstudio/issues/10#issuecomment-720153256

  1. In the solution explorer, add a new project to your solution.

    image

  2. Search for library .net framework to find the "old-style" project style. Select it and press Next.

    image

  3. Set up the project.

    • Name: StubProj
    • Location: make sure this is your project directory.
    • Framework: the default is fine, we're going to replace this later anyway.

    image

  4. Open the StubProj directory. You can use Open Folder in File Explorer to do this easily.

    image

  5. Close Visual Studio. Press Yes if prompted to save files.

  6. In the StubFolder directory, delete all files and directories except StubProj.csproj. (Delete bin, obj, Properties, Class1.cs.)

  7. Open StubProj.csproj in a text editor. (Not Visual Studio.) Delete the content, then paste this text (a slightly modified version of the original workaround)

    <?xml version="1.0" encoding="utf-8"?>
    <Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
      <PropertyGroup>
        <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
        <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
        <ProjectGuid>{B83A5A30-7D9A-4BCC-BB56-2974A2AAE767}</ProjectGuid>
        <OutputType>Library</OutputType>
        <RootNamespace>StubProj</RootNamespace>
        <AssemblyName>StubProj</AssemblyName>
        <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
        <FileAlignment>512</FileAlignment>
        <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
        <Deterministic>true</Deterministic>
        <ProjectTypeGuids>{8F3E2DF0-C35C-4265-82FC-BEA011F4A7ED};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
      </PropertyGroup>
      <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
        <PlatformTarget>AnyCPU</PlatformTarget>
        <DebugSymbols>true</DebugSymbols>
        <DebugType>full</DebugType>
        <Optimize>false</Optimize>
        <OutputPath>bin\Debug\</OutputPath>
        <DefineConstants>DEBUG;TRACE</DefineConstants>
        <ErrorReport>prompt</ErrorReport>
        <WarningLevel>4</WarningLevel>
      </PropertyGroup>
      <ItemGroup>
        <ProjectReference Include="..\*.csproj">
          <Private>False</Private>
        </ProjectReference>
      </ItemGroup>
      <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
    </Project>
  8. Start Visual Studio. Open your Godot project back up.

  9. Set StubProj as your Startup Project.

    image

  10. See the extension's debugging options are there!

    image

@31

This comment has been minimized.

Copy link
Owner Author

@31 31 commented Oct 12, 2021

If you hit an error like this (image credit to @Atlinx, asking about this on the Godot Discord), it seems to mean the StubProj folder isn't inside the Godot project directory:

image

Make sure the StubProj folder is inside your Godot project folder.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment