2014-02-20 4 views
5

이 특정 문제는 큰 문제입니다. 이 디버그 구성에 경우 내 현재 구성 비주얼 스튜디오 2013에서Visual Studio에서는 디버그 구성을 빌드하지만 릴리스 구성을 빌드하지 않습니다.

내 프로젝트를 구축,하지만 경우는 릴리스 구성입니다.

아무 래도 내가 릴리스 160 오류를 선택하면 강아지가 나올 때 그들이 불가능한 장소에 있습니다. 한 가지 예가 있습니다.

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

그리고 여기에 문제의 코드는 다음과 같습니다 :

비주얼 스튜디오 오류는 다음과 같습니다 것 디버그 구성 하나가되지 않은 경우, 오류가없는 참조

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)); 
    } 

빌드도. 이미 솔루션을 정리하려고했는데 TFS에서 최신 정보를 얻었습니다. 구성을 삭제하고 다시 작성합니다.

지금 당장은 제 기지가 끝났습니다. 누군가가 이걸 도와 줄 수 있습니까?

프로젝트는 MS 비동기, JSON.NET와 교류 # 4.0 프로젝트이며, 당신이 정말로 붙어있는 경우 #에게 패키지

답변

6

다른 사람들의 문제는 내가했던 것과 같습니다. Dylan Smith 덕분에 해결책을 찾았습니다.

원하는 텍스트 편집기로 .csproj 파일을 열면 Notepad ++를 사용하지만 VS도 작동합니다. 상단에는 PropertyGroup이라는 요소가 있어야합니다. 이러한 요소는 빌드 구성을 정의합니다. 나를 위해 거기 두 : 릴리스에 대한

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

그리고 하나 :

디버그에 대한 하나의 별개로 처음 두 노드 명백한 차이에서

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

( DebugSymbolsDebugType) 주요 차이점은 LangVersion 요소입니다. 나는 그것을 삭제하고 voilá 프로젝트도 릴리스 모드에서 빌드합니다.

그렇다면 나와 같은 문제가있는 경우 .csproj 파일을 열고이 노드를 삭제하면 문제를 해결할 수 있습니다.

P. 누구든지 내가 무엇을 말해 줄 수 LangVersion 요소, 만약 내가 4에서 4로 변경하면 의미합니다.0 다음과 같은 오류가 나타납니다.

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

아무도 답변을 드릴 수 없으므로 여기에 추가 정보를 입력하십시오. 당신이 당신의 자신의 사용자 정의 대화 상자의 Visual Studio 2010를 사용하여 윅스 설치 프로젝트를 빌드하고 프로젝트 릴리스 모드에서 디버그 모드에서 빌드가 아닌 경우

+0

LangVersion은 컴파일러에서 사용할 C# 언어/구문의 버전입니다. 코드에서 사용하는 async 및 기다리는 기능은 C# 5 이상입니다. 따라서 csproj에서 LangVersion을 4로 설정하면 컴파일러가 실패합니다. –

+0

async/await 키워드가 MS BCL 패키지에서 온다고해도? 그것이 내가 이러한 키워드에 사용하는 것이므로 역 비교 가능성 때문에 C# 4.0을 대상으로합니다. – Ruhrpottpatriot

+0

async/await 키워드는 BCL이 아닌 C# 5의 일부입니다. 작업 병렬 라이브러리 (비동기 개념을 구현하는 데 사용되는 BCL 유형)는 .Net 4의 일부 였지만 비동기/대기 키워드의 구문 분석 "설탕"을 사용하려면 C# 5가 필요합니다. C# 4에서 비동기 작업을 수행하려면 작업 유형을 직접 사용해야합니다. –

6

을 휴식, 당신이 할 수있는 한 가지 텍스트/XML 편집기에서 csproj 파일을 열 수 있습니다 거기에있는 실제 XML을 검사하십시오. 디버그/릴리스 구성에 따라 다르게 설정된 설정/속성을 파악하려고합니다. 이렇게하면 두 구성간에 다른 작업에 대한 통찰력을 얻을 수 있습니다.

2

, 다음 → ProjectProperties에 가서는 Release ModeTool Settings 설정 체크 박스 Suppress ICE validation을 선택하십시오.

관련 문제