File 从生成定义文件控制pdb文件输出
我正在尝试生成没有生成pdb文件的发布版本。我看到很多帖子建议右键点击项目,选择属性,进入Build选项卡,然后进入Advanced。。。butoon并将调试信息更改为“无”。这一切都是可行的,但我需要为构建约50个解决方案而这样做,每个解决方案包含约25个项目!其他帖子提到编辑适当的.csproj文件,但同样,由于项目太多,这需要很长时间。有没有办法通过TFSBuild.proj文件实现这一点 我尝试将以下内容添加到TFSBuild.proj文件中,但没有成功File 从生成定义文件控制pdb文件输出,file,msbuild,pdb-files,File,Msbuild,Pdb Files,我正在尝试生成没有生成pdb文件的发布版本。我看到很多帖子建议右键点击项目,选择属性,进入Build选项卡,然后进入Advanced。。。butoon并将调试信息更改为“无”。这一切都是可行的,但我需要为构建约50个解决方案而这样做,每个解决方案包含约25个项目!其他帖子提到编辑适当的.csproj文件,但同样,由于项目太多,这需要很长时间。有没有办法通过TFSBuild.proj文件实现这一点 我尝试将以下内容添加到TFSBuild.proj文件中,但没有成功 <PropertyGrou
<PropertyGroup>
<Configuration>Release</Configuration>
<Platform>AnyCPU</Platform>
</PropertyGroup>
<PropertyGroup>
<DebugSymbols>false</DebugSymbols>
<DebugType>none</DebugType>
<Optimize>true</Optimize>
</PropertyGroup>
释放
任意CPU
假的
没有一个
真的
下面一行打印出Release | AnyCPU、none和false,但我仍然在$(OutputDir)文件夹中看到.pdb文件
<Message Text="$Configuration|Platform): $(Configuration)|$(Platform)" />
<Message Text="DebugType is: $(DebugType)"/>
<Message Text="DebugSymbols is: $(DebugSymbols)"/>
提前感谢,,
Urvi我不完全确定(没有安装team build),但当您在TFSBuild项目中更改此类属性时,它们很可能不会传播到实际的项目文件,因为实际的解决方案/项目是通过启动另一个MSBuild任务生成的,Microsoft.TeamFoundation.Build.targets中的责任目标不会将这些属性传递给任务
例如,这是前面提到的文件中的目标“CallCompile”(同样,我不确定这是否是构建场景使用的,但想法是相同的):
因此,您可以将想要的属性添加到目标文件中,但:
- 这意味着您必须在每次升级时更改该文件
- 这可能不是您所有项目所希望的行为
- 最后但并非最不重要的一点:如果调用的项目文件还包含DebugSymbols/…,则文件中的属性值将覆盖MSBuild任务传递的属性值,因此最终您仍然需要更改所有项目文件以处理该问题
实现所需功能的一种方法是,用您选择的语言编写一个脚本,列出特定目录下的所有*.csproj文件,然后修改每个文件以将true替换为false。或者更快:在explorer中搜索*.csproj,在编辑器中一次打开所有文件,并对所有打开的文件执行查找/替换。为什么不想生成PDB?只是古玩。
<Target Name="CallCompile" DependsOnTargets="$(CoreCompileDependsOn)">
<!-- Pass in all properties that users might want during the course of the compile targets. -->
<MSBuild Projects="$(MSBuildProjectFile)"
Properties="a lot of properties, but not DebugSymbols etc"
Targets="CoreCompile">
</MSBuild>
</Target>