2013-03-22 3 views
9
<MSBuild Projects="$(ProjectFile)" Targets="_WPPCopyWebApplication;" 
Properties="OutDir=..\publish;Configuration=Release;Platform=AnyCPU" /> 

Ich verwende oben Skript, um Asp.Net-Projekt zu veröffentlichen. In den Projekteinstellungen habe ich unbedingt dafür gesorgt, dass Debug-Symbole im Freigabemodus erzeugt werden. Noch MsBuild generiert die PDB-Dateien in der Ausgabe nicht.MsBuild PDB-Dateien in Release-Konfiguration nicht generieren

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

Wie haben Sie sichergestellt, dass Debug-Symbole generiert werden? Welche Einstellungen haben Sie dafür vorgenommen? – TimVK

+0

@Syam Hallo, ich habe das gleiche Problem. 2 Dinge: Ich erlebe das erst seit ich auf vs2012 umgestiegen bin, ist das auch bei dir der Fall? Außerdem habe ich bemerkt, dass .pdbs * * generiert * werden, aber dann werden sie direkt am Ende des Builds gelöscht. Passierst du das auch für dich? – bottlenecked

+0

@TimVK Ich habe die Frage mit relevanten Informationen aus vbproj Datei – Syam

Antwort

16

Nachdem an der Microsoft.Web.Publishing.targets Quelle suchen, ich habe eine Variable (ExcludeGeneratedDebugSymbol) gefunden in Release-Modus auf True gesetzt werden. Aus den Kommentaren sieht es so aus, als wollten sie Symbole aus dem WebSite-Projekt ausschließen, aber die Bedingung ist für das WebApplication-Projekt nicht richtig eingestellt.

Also, ich habe beschlossen, mein Build-Skript von den Anruferargumenten zu überschreiben, und es funktionierte wie ein Charme. Ich habe noch keine Seiteneffekte festgestellt, die es verursachen oder die undokumentierte Eigenschaft für zukünftige Stabilität verwenden könnte, aber es funktioniert für jetzt.

Von der Microsoft.Web.Publishing.target Datei

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

ich mein Skript aktualisiert haben sich wie folgt.

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

Sie könnten Ihr Profil veröffentlichen (.pubxml) Datei enthalten sein, dass diese Eigenschaft ebenfalls aktualisiert. Ich musste dies heute mit den neuen Build-Bits in TFS Build 2015 tun, damit die Web-Veröffentlichung die .pdb-Dateien enthält. Siehe Beispielinhalt der Datei mit der Eigenschaft, die am Ende hinzugefügt wurde.

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