Visual Studio builds debug configuration, but not release configuration

If you are really stuck, one thing you could do is open up the .csproj file in a text or XML editor and inspect the actual XML content in there. You're trying to figure out what settings/properties are set differently based on Debug/Release configurations. This might give you some insight into what it is doing different between the two configurations.


OK, if anyone else has the same problem, here is what I did. Thanks to Dylan Smith, I got to the solution.

Open your .csproj file with a text editor of your choice. I used Notepad++, but Visual Studio is also working. At the top there should be elements called PropertyGroup. Those elements define your build configurations. For me there were two:

One for Debug:

    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
        <DebugSymbols>true</DebugSymbols>
        <DebugType>full</DebugType>
        <Optimize>true</Optimize>
        <OutputPath>bin\Debug\</OutputPath>
        <DefineConstants>DEBUG;TRACE</DefineConstants>
        <ErrorReport>prompt</ErrorReport>
        <WarningLevel>4</WarningLevel>
        <PlatformTarget>x86</PlatformTarget>
        <DocumentationFile>bin\Debug\GW2.NET.XML</DocumentationFile>
    </PropertyGroup>

And one for Release:

    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
        <DebugType>none</DebugType>
        <Optimize>true</Optimize>
        <OutputPath>bin\Release\</OutputPath>
        <DefineConstants>TRACE</DefineConstants>
        <ErrorReport>prompt</ErrorReport>
        <WarningLevel>4</WarningLevel>
        <DocumentationFile>bin\Release\GW2.NET.XML</DocumentationFile>
        <LangVersion>4</LangVersion>
        <PlatformTarget>x86</PlatformTarget>
    </PropertyGroup>

Apart from the obvious differences, with the first two nodes (DebugSymbols and DebugType), the main difference was the LangVersion element. I deleted it and voilà the project builds in release mode too.

So if you have the same problem as me, open the .csproj file and delete this node. This should solve it.

P.S.: What does the LangVersion element mean? If I change it from 4 to, say, 4.0, I get the following error:

Invalid option '4.0' for /langversion; must be ISO-1, ISO-2, 3, 4, 5 or Default