的MSBuild不生成发布配置PDB文件(MsBuild not generating PDB fi

2019-08-17 20:56发布

<MSBuild Projects="$(ProjectFile)"  Targets="_WPPCopyWebApplication;"
Properties="OutDir=..\publish;Configuration=Release;Platform=AnyCPU" />

我使用上面的脚本来发布Asp.Net项目。 在项目设置,我绝对确信调试符号在释放模式产生。 尽管如此的MSBuild不产生输出的pdb文件。

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>Full</DebugType>
    <DefineDebug>false</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <Optimize>true</Optimize>
    <OutputPath>bin\</OutputPath>
    <DocumentationFile>WebProject.xml</DocumentationFile>
    <DebugSymbols>true</DebugSymbols>
  </PropertyGroup>

Answer 1:

看Microsoft.Web.Publishing.targets源之后,我发现了一个变量(ExcludeGeneratedDebugSymbol)被设置为True在Release模式。 从评论,它看起来像他们想排除网站项目符号,但条件是不正确的WebApplication的项目设置。

所以,我决定从调用参数将覆盖我的生成凭证和它的工作就像一个魅力。 我还没有确定任何一方的影响可能会造成或使用无证物业未来的稳定,但它适用于现在。

从Microsoft.Web.Publishing.target文件

<!--For website we will always exclude debug symbols from publishing unless it is set explicitly by user in website publish profile-->
    <ExcludeGeneratedDebugSymbol Condition="'$(ExcludeGeneratedDebugSymbol)'=='' And '$(_WebProjectType)' == 'WebSite'">True</ExcludeGeneratedDebugSymbol>

    <ExcludeGeneratedDebugSymbol Condition="'$(ExcludeGeneratedDebugSymbol)'=='' And '$(Configuration)' == 'Release'">True</ExcludeGeneratedDebugSymbol>
    <ExcludeGeneratedDebugSymbol Condition="'$(ExcludeGeneratedDebugSymbol)'==''">False</ExcludeGeneratedDebugSymbol>

我已经更新如下我的脚本。

<MSBuild Projects="$(ProjectFile)"  Targets="_WPPCopyWebApplication;"
Properties="OutDir=..\publish;Configuration=Release;Platform=AnyCPU"; ExcludeGeneratedDebugSymbol=false />


Answer 2:

您也可以更新您的个人资料发布(.pubxml)文件,包括属性值。 我不得不这样做今天在TFS新的版本位建设2015年有网络出版包括.pdb文件。 见文件的内容,例如财产加到底部。

<?xml version="1.0" encoding="utf-8"?>
<!--
This file is used by the publish/package process of your Web project. You can customize the behavior of this process
by editing this MSBuild file. In order to learn more about this please visit http://go.microsoft.com/fwlink/?LinkID=208121. 
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <SiteUrlToLaunchAfterPublish />
    <publishUrl>C:\Publish</publishUrl>
    <DeleteExistingFiles>True</DeleteExistingFiles>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <LaunchSiteAfterPublish>False</LaunchSiteAfterPublish>
    <ExcludeGeneratedDebugSymbol>false</ExcludeGeneratedDebugSymbol>
  </PropertyGroup>
</Project>


Answer 3:

你可以在你直接把这个*.csproj文件,作为最后一个属性组部分(前右Import元素):

<PropertyGroup>
  <ExcludeGeneratedDebugSymbol Condition="$(DebugSymbols) == true">false</ExcludeGeneratedDebugSymbol>
</PropertyGroup>


文章来源: MsBuild not generating PDB files in Release configuration
标签: msbuild