2013-03-22 3 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 소스에서 찾고 후, 나는 변수 (ExcludeGeneratedDebugSymbol가) 릴리스 모드에서 True로 설정되는 것을 발견했다. 의견에서 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) 파일을 업데이트 할 수있다. 웹 게시에 .pdb 파일을 포함 시키려면 TFS Build 2015의 새로운 빌드 비트를 사용하여이 작업을 수행해야했습니다. 아래쪽에 속성이 추가 된 파일의 예제 내용을 참조하십시오.

<?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> 
관련 문제