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

私は上記のスクリプトを使用してAsp.Netプロジェクトを公開しています。プロジェクト設定では、リリースモードでデバッグシンボルが生成されていることを確かめました。まだMsBuildは出力にpdbファイルを生成していません。リリース設定で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> 
+0

デバッグシンボルはどのように生成されましたか?どの設定をこのために設定しましたか? – TimVK

+0

@Syamこんにちは、私は同じ問題を抱えています。 2つのこと:私はvs2012に切り替えて以来、私はこれを経験しているだけで、これはあなたの場合もですか?さらに、私は.pdbs *が*生成されていることに気づきましたが、ビルドの最後に削除されてしまいました。これもあなたのために起こりますか? – bottlenecked

+0

@TimVK私はvbprojファイルの関連情報を更新しました – Syam

答えて

16

Microsoft.Web.Publishing.targetsソースを見た後、私はリリースモードでTrueに設定されている変数(ExcludeGeneratedDebugSymbol)を発見しました。コメントから、WebSiteプロジェクトからシンボルを除外したかったようですが、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 /> 
3

また、あなたの公開プロフィール(.pubxml)そのプロパティの値が含まれるようにファイルを更新できます。私は今日、TFS Build 2015の新しいビルドビットでこれをやって、Webパブリッシングに.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> 
関連する問題