Visual Studio构建调试配置但不构建发布配置

时间:2014-02-20 13:14:17

标签: visual-studio c#-4.0 tfs visual-studio-2013

这个特殊问题很重要。

在我当前的配置中,Visual Studio 2013构建我的项目如果它在 Debug 配置中,但如果它在中发布配置。

不知何故,当我选择版本160错误时,我会通过它们,它们在不可能的地方。这是一个例子。

Visual studio错误如下:

  

错误3;预期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));
    }

你看到没有错误,如果有一个Debug配置也不会构建。我已经尝试清理解决方案,从TFS获得最新信息。删除并重新创建配置。

现在我的智慧结束了。有人可以帮我吗?

该项目是一个c#4.0项目,包含MS async,JSON.NET和Rest#packages

3 个答案:

答案 0 :(得分:7)

如果你真的遇到困难,你可以做的一件事就是在text / xml编辑器中打开csproj文件并检查那里的实际XML。您试图根据调试/发布配置找出不同设置的设置/属性。这可能会让您深入了解两种配置之间的不同之处。

答案 1 :(得分: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>

除了明显的差异外,前两个节点( DebugSymbols DebugType )的主要区别在于 LangVersion 元素。我删除了它,并且该项目也在发布模式下构建。

因此,如果您遇到与我相同的问题,请打开.csproj文件并删除此节点,这应解决它。

P.S。任何人都可以告诉我 LangVersion 元素是什么意思,如果我将其从4更改为4.0,我会收到以下错误:

  

/ langversion的选项'4.0'无效;必须是ISO-1,ISO-2,3,4,5或默认

任何人都可以回答这个问题,所以我可以在这里提供更多信息。

答案 2 :(得分:2)

如果您正在使用带有自己的自定义对话框的Visual Studio 2010构建Wix安装项目,并且项目以调试模式构建但未处于发布模式,请转到Project Properties Tool Settings设置为Release Mode并选中Suppress ICE validation复选框。