在发布中部署PDB文件

26

我已经设置了我的CI服务器来构建和部署所有环境,包括生产环境。据我所知,在我的Staging环境构建和生产环境构建之间,所有项目文件和CI设置的设置都是相同的。但是,当我部署到生产环境时,就像在暂存中一样,没有PDB文件与DLL文件一起存在。这里是部署每个应用程序的脚本:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe %location% ^
    /p:Configuration=%configName% ^
    /p:DeployOnBuild=True ^
    /p:DeployTarget=MSDeployPublish ^
    /p:AllowUntrustedCertificate=True ^
    /p:MSDeployPublishMethod=WMSvc ^
    /p:CreatePackageOnPublish=True ^
    /p:MsDeployServiceUrl=https://%serverName%:8172/MsDeploy.axd ^
    /p:DeployIisAppPath=%siteName% ^
    /p:UserName=%username% ^
    /p:Password=%password%

看起来当 Configuration=Release 时,PDB 文件被留下了,尽管它们已经在构建服务器上生成。有什么想法吗?

2个回答

48
如果您想要在发布时包含pdb文件,请前往项目属性和Package/Publish Web选项卡,取消勾选“排除生成的调试符号” 设置

哇,那真是太容易了。谢谢! - Hungry Beast
3
抓住:确保您选择了正确的配置。 - Bertvan
1
如果你要发布,请确保在那里选择正确的配置。它们必须在两侧对齐。 - argyle
2
这对我没有用 - Bakhodir的答案有用。 - Rune Jeppesen

21
如果您想在部署(发布)时包括pdb文件,即使是 Release 模式,可以将以下属性添加到项目文件中:
<ExcludeGeneratedDebugSymbol>False</ExcludeGeneratedDebugSymbol>

1
在项目文件的哪个位置应该添加这行代码?最好能提供更多信息。此外,您可以通过详细说明如何使用 GUI 完成此操作来改进您的答案。 - sampathsris
4
非常好!对于那些使用MSBuild命令行的人:ExcludeGeneratedDebugSymbol=false表示不排除生成的调试符号。 - Roman O
3
如果您勾选/保存/取消勾选/保存“排除生成的调试符号”,它将使用GUI在项目文件中创建一个明确的条目。 - Kalecser
您还可以将此行添加到相应的发布配置文件中。 - marsze
我还需要指定 DebugSymbols=true 和 DebugType=pdbonly,因为没有这些选项,pdb 文件将不会被创建。 - neverlucky13

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接