2014-02-20 4 views
5

Dieses besondere Problem ist ein großes Problem.Visual Studio erstellt Debugkonfiguration, aber keine Konfiguration freigeben

In meinem aktuellen Konfiguration Visual Studio 2013 baut mein Projekt wenn es in Debug Konfiguration ist, aber nicht wenn es in Veröffentlichung Konfiguration.

Irgendwie, wenn ich Release 160 Fehler Pup oben auswählen und wenn ich durch sie gehe, sind sie in unmöglichen Orten. Hier ist ein Beispiel.

von Visual Studio Fehler ist folgende:

Error 3 ; expected E:\Users\Robert\Documents\Visual Studio 2013\Projects\GW2.NET\GW2.NET\GW2.NET\V1\MapInformation\DataProvider\ContinentData.cs 96 36 GW2.NET

Und hier ist der Code in Frage:

public static async Task<T> GetContentAsync<T>(string apiMethod, List<KeyValuePair<string, object>> arguments, Categories category) 
    { 
     var response = await GetJsonAsync(apiMethod, arguments, category); 

     return await Task.Factory.StartNew(() => JsonConvert.DeserializeObject<T>(response)); 
    } 

Sie dort sehen kein Fehler ist, wenn es eine Konfiguration der Debug wäre, würde nicht baue auch. Ich habe schon versucht, die Lösung zu säubern, habe das Neueste von TFS bekommen. Gelöscht und neu erstellt die Konfigurationen.

Für jetzt bin ich am Ende meines Esprits. Kann mir jemand dabei helfen?

Das Projekt aC# 4.0-Projekt mit dem MS async, JSON.NET ist und der Rest # Pakete

Antwort

6

OK, von jedem anderen hat das gleiche Problem hier ist, was ich getan habe. Dank Dylan Smith bin ich zur Lösung gekommen.

Öffnen Sie Ihre .csproj-Datei mit einem Texteditor Ihrer Wahl, ich habe Notepad ++ verwendet, aber VS funktioniert auch. An der Spitze sollten die Elemente PropertyGroup sein. Diese Elemente definieren Ihre Build-Konfigurationen. Für mich gab es zwei:

One für 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> 

Und eine für die Freigabe:

<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> 

Abgesehen von den offensichtlichen Unterschiede, wobei die ersten zwei Knoten (DebugSymbols und DebugType) der Hauptunterschied war das LangVersion Element. Ich habe es gelöscht und voilá das Projekt baut auch im Release-Modus.

Also wenn Sie das gleiche Problem wie ich haben, öffnen Sie die .csproj-Datei und löschen Sie diesen Knoten, dies sollte es lösen.

P.S. kann mir jemand sagen was das LangVersion Element bedeutet, wenn ich es von 4 auf 4 ändere.0 Ich bekomme folgende Fehlermeldung:

Kann mir jemand antworten, damit ich die zusätzlichen Informationen hier eintragen kann.

+0

LangVersion ist die Version der C# -Sprache/-Syntax, die der Compiler verwendet. Die Async- und Wartefunktionen, die Sie in Ihrem Code verwenden, sind nur C# 5+. Wenn also LangVersion im csproj auf 4 gesetzt ist, wird der Compiler fehlschlagen. –

+0

Auch wenn die Schlüsselwörter async/await aus dem MS BCL-Paket stammen? Da dies für diese Schlüsselwörter verwendet wird, wird C# 4.0 aufgrund der Rückwärtsvergleichbarkeit verwendet. – Ruhrpottpatriot

+0

async/await-Schlüsselwörter sind Teil von C# 5, nicht von BCL. Die Task Parallel-Bibliothek (die BCL-Typen, die zur Implementierung der Async-Konzepte verwendet werden) war Teil von .Net 4, aber wenn Sie die syntaktische Syntax "sugar" der async/await-Schlüsselwörter verwenden möchten, benötigen Sie C# 5. Wenn Wenn Sie in C# 4 async ausführen möchten, müssen Sie die Task-Typen direkt verwenden. –

6

Wenn Sie wirklich stecken sind, eine Sache, die Sie tun können, ist die csproj Datei in einem Text/XML-Editor öffnen und prüfe das eigentliche XML dort. Sie versuchen herauszufinden, welche Einstellungen/Eigenschaften basierend auf Debug/Release-Konfigurationen unterschiedlich eingestellt sind. Dies könnte Ihnen einen Einblick geben, was es zwischen den beiden Konfigurationen unterscheidet.

2

Wenn Sie ein Wix Setup-Projekt mit Visual Studio 2010 bauen mit Ihrem eigenen Dialogfeld und Ihr Projekt baut im Debug-Modus, aber nicht im Release-Modus, dann gehen Sie zu ProjectProperties gesetzt Tool Settings-Release Mode und aktivieren Sie das Kontrollkästchen Suppress ICE validation.

Verwandte Themen