【发布时间】:2013-03-01 23:52:07
【问题描述】:
我正在使用 NAnt 构建我的项目并发布网站项目。我想在生成的包中包含 PDB。执行msbuild时如何从命令行设置ExcludeGeneratedDebugSymbol属性?
我尝试将其添加到参数列表中,但仍然没有看到 PDB。我的exec 任务如下所示:
<exec program="${MSBuildPath}" workingdir="${path::get-full-path(PublishWebProject.SourcePath)}\">
<!-- Don't show the logo. -->
<arg value="/nologo"/>
<!-- Build w/o Clean -->
<arg value="/t:Build"/>
<!-- Configuration, Output, Options, No Warnings -->
<arg value="/p:OutputPath=bin\;OutDir=${path::get-full-path(PublishWebProject.OutputPath)};Configuration=${Configuration};Platform=Any CPU;UseWPP_CopyWebApplication=True;PipelineDependsOnBuild=False;WarningLevel=0;RunCodeAnalysis=false;ExcludeGeneratedDebugSymbol=false"/>
<!-- Quiet -->
<arg value="/v:q"/>
<!-- Project Path -->
<arg value="${PublishWebProject.ProjectFileName}"/>
</exec>
这是对 MSBuild 的实际调用:
[exec] Starting 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe (/nologo /t:Build "/p:OutputPath=bin\;OutDir=D:\Projects\XYZ\Publish\Release-Production\CommonWeb\;Configuration=Release-Production;Platform=Any CPU;UseWPP_CopyWebApplication=True;PipelineDependsOnBuild=False;WarningLevel=0;RunCodeAnalysis=false;ExcludeGeneratedDebugSymbol=false" /v:q CommonWeb.csproj)' in 'D:\Projects\XYZ\Source\CommonWeb\'
相当于:
D:\Projects\XYZ\Source\CommonWeb> C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe /nologo /t:Build "/p:OutputPath=bin\;OutDir=D:\Projects\XYZ\Publish\Release-Production\CommonWeb\;Configuration=Release-Production;Platform=Any CPU;UseWPP_CopyWebApplication=True;PipelineDependsOnBuild=False;WarningLevel=0;RunCodeAnalysis=false;ExcludeGeneratedDebugSymbol=false" /v:q CommonWeb.csproj
我也尝试将 UseWPP_CopyWebApplication 设置为 false,但这也没有帮助。
【问题讨论】:
-
您能否发布 NAnt 输出。我怀疑未引用的属性参数可能是一个问题
-
NAnt 会在需要时自动引用参数。例如,我的以
/p:OutputPath...开头的长参数以"/p:OutputPath..."结尾,因为它在OutDir参数的值中有空格。并且构建工作正常,我只是没有得到 PDB。我什至不相信ExcludeGeneratedDebugSymbol属性是可以发送的有效属性。我会在几分钟后发布完整的命令行... -
我的下一个猜测是设置调试信息。找到我的答案
标签: .net-4.0 build msbuild nant