.net 4.0 从命令行设置MSBuild Web发布属性“ExcludeGeneratedDebugSymbol”

.net 4.0 从命令行设置MSBuild Web发布属性“ExcludeGeneratedDebugSymbol”,.net-4.0,build,msbuild,nant,.net 4.0,Build,Msbuild,Nant,我正在使用NAnt构建我的项目并发布网站项目。我想在生成的包中包含PDB。执行msbuild时,如何从命令行设置ExcludeGeneratedDebugSymbol属性 我尝试将其添加到参数列表中,但仍然看不到PDB。我的exec任务如下所示: <exec program="${MSBuildPath}" workingdir="${path::get-full-path(PublishWebProject.SourcePath)}\"> <!-- Don't show

我正在使用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>
这相当于:

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,但这也没有帮助。

您的项目文件包含有关输出调试信息的信息。尝试仅将调试信息设置为pdb:


你能把NAnt输出发出去吗。我怀疑未加引号的属性args可能是issueNAnt,如果需要,它会自动引用参数。例如,我的长参数以/p:OutputPath开头。。。结束为/p:OutputPath。。。因为OutDir参数的值中有空格。而且构建工作正常,我只是没有得到PDB。我甚至不相信ExcludeGeneratedDebugSymbol属性是一个可以发送的有效属性。我将在几分钟后发布完整的命令行…我的下一个猜测是设置调试信息。查找提供以下信息的答案:MSBUILD:错误MSB1001:未知开关。开关:/debug:pdbonly这是我所期望的,因为这里没有将它列为开关:我确实在项目文件中将“属性>生成>输出>高级>输出>调试信息”设置设置为pdb。我还取消选中了属性>打包/发布Web>要部署的项目>排除生成的调试符号。无效。您是否知道设置输出调试信息对生成配置敏感?在将调试信息设置为pdb-only之前,请先将“属性”>“生成”>“配置”设置为“所有配置”。是的,所有生成配置都选择了“仅pdb”,并且取消选中上述复选框。
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
<arg value="/debug:pdbonly" />