首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

您是否必须部署.pdb文件并在发布时进行编译?

在软件开发过程中,.pdb文件是一种调试信息文件,它包含了程序的符号信息、源代码文件名、行号等信息,可以帮助开发人员在调试程序时查看源代码、设置断点、查看变量值等。

在发布软件时,是否需要部署.pdb文件取决于开发人员的需求。如果开发人员需要在发布后进行调试,或者需要使用调试工具对发布版本进行分析,那么可以部署.pdb文件。但是,如果开发人员不需要进行调试或者分析,或者希望发布的软件尽可能小,那么可以选择不部署.pdb文件,而只发布程序的可执行文件和其他必要的资源文件。

在编译发布版本时,通常会将.pdb文件排除在外,以减小发布版本的体积。如果需要在发布版本中包含.pdb文件,可以通过编译选项进行设置。

总之,是否需要部署.pdb文件并在发布时进行编译,取决于开发人员的需求和具体情况。如果需要进行调试或者分析,可以部署.pdb文件;如果不需要,可以选择不部署.pdb文件。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

在.net项目中生成的pdb(程序数据文件)是什么文件

前言 熟悉.Net开发的朋友会知道,项目在编译,除了可执行的.exe文件外,在运行目录常常会生成.pdb文件,好多人都不知道这个文件是干什么用的,今天就详细介绍一下。...以下是PDB文件存储的一些重要信息: 局部变量名——为了证明pdb包含局部变量名,我们将利用反射器将其pdb在与程序集相同的文件夹中进行编译。...当检查选项,你可以看到反编译的代码相同的变量名,你的实际代码,但在缺乏PDB或未经检查该选项,局部变量反编译的代码中,字符型变量名会被替换成“str”,数值型的则是“num”等等。 ?...调试器通过将PDB中的特定GUID与二进制的GUID进行比较,发现PDB是否跟二进制文件相匹配。这个Guid在编译过程中嵌入到二进制和PDB中,并将PDB与二进制文件紧密连接。...这些PDBs对于某些用户在某些情况下会非常有用,因为某些用户没有PDB会使生活变得困难。 这并不是说必须拥有PDBs和二进制部署来获得关于异常的额外信息。

1.7K30

CoreHook:基于.NET Core运行时实现的Windows HOOK库

Windows 10物联网(ARM) Raspberry Pi本身仅作为部署目标受支持,但也有不受支持的SDK版本。按照此链接阅读有关发布过程的更多信息。...然后,您可以将该文件夹复制到的设备并启动该CoreHook.FileMonitor.exe程序。 发布脚本 PowerShell脚本publish.ps1允许您将示例发布为自包含的可执行文件。...要使符号查找起作用,必须PDB文件放在要挂钩的目标程序的目录中,或将环境变量_NT_SYMBOL_PATH设置为符号服务器。...要点:要使用完整的符号查找,需要同时拥有dbghelp.dll(提供符号查找API)和symsrv.dll(提供符号服务器查找)并在DLL搜索路径中。...您可以通过运行符号测试来确认是否正确配置了符号支持。 *参考来源:github,FB小编周大涛编译,转载请注明来自FreeBuf.COM

1.7K20
  • 如何更安全的升级Kubernetes节点

    是否害怕将集群升级到更新的 Kubernetes 版本?有几个原因可能会促使升级。...如果的资源配置不正确,可能会导致停机。让我们来看看一些潜在的陷阱。 独立 Pod Pod 是 Kubernetes 中最小的可部署对象。它代表在的集群中运行的应用程序的单个实例。...部署通过管理应用程序的多个副本并在任何实例失败部署替换来提高可用性。 要消除停机时间,请确保的应用程序具有PodDisruptionBudget (PDB)。...PDB 通过限制同时关闭的复制应用程序的 pod 数量来帮助提供更高的可用性。 例如,以下 PDB 声明 80% 的带有front-end标签的 pod 在中断期间(例如我们的升级)必须可用。...要消除停机时间,请确保已配置以下内容: 添加一个 PodDisruptionBudget(请参阅“部署”部分中的说明)。

    67820

    怎么把sql删干净_sql的导入和导出的好处

    程序数据库 (PDB) 文件保存着调试和项目状态信息,使用这些信息可以对程序的调试配置进行增量链接。 在使用 /debug 生成,会创建一个 PDB 文件。...使用 /debug:pdbonly 生成将产生 PDB,但是不会产生通知 JIT 编译器调试信息可用的 DebuggableAttribute。...如果您想为不希望其成为可调试的发布版本生成 PDB,请使用 /debug:pdbonly。 有关更多信息,请参见 /debug (C# 编译器选项)或 /debug (Visual Basic)。...如果调试器无法找到 .PDB 文件,则显示“查找符号”对话框,这将允许搜索符号或向搜索路径添加其他位置。...如果想发布的时候不带pdb文件则: VS的 项目–>生成–>高级–>调试信息–>None便可 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

    64430

    【翻译】.NET 5 Preview8发布

    今天,.NET 5预览8发布了,对于.NET5.0的功能开发已经完成了,这必须要排除待处理的bug,预览8是最后一次预览版本。...有一些现有的项目可以实现类似的场景,例如: Unmanaged Exports DllExport Application deployment 编写或更新应用程序后,需要对其进行部署以供用户利用...在此版本中,我们专注于单个文件应用程序,并改进了.NET Core的ClickOnce。 Single file applications 单个文件应用程序作为单个文件发布部署。...我们使用.NET Core 3.1制作了一个单文件应用程序版本。它将二进制文件打包到一个文件中以进行部署,然后将这些文件解压缩到一个临时目录中以加载并执行它们。...dotnet发布生成的现成代码(将 PublishReadyToRun 设置为true)是AOT的示例。当发布准备运行的映像,该构建会提前为生成机器代码,而不是在运行时由JIT生成。

    79420

    在Tomcat上安装 Oracle_REST数据服务(ORDS)

    环境说明 Tomcat 7、8或9 Oracle Linux 7 APEX映像(可选) 多租户: CDB或PDB安装 使用多租户体系结构,有几种用于安装ORDS的选项。...对于Lone-PDB安装(带有一个PDB的CDB)或具有少量PDB的CDB,可以将ORDS直接安装到PDB中。db.servicename参数将在属性文件中设置为PDB服务名称。...或者,您可以在属性文件中使用cdb.common.schema = true,这意味着所有PDB必须使用相同版本的ORDS。...编辑ORDS软件随附的 /u01/ords/params/ords_params.properties 文件,并为的安装设置适当的参数。...如果您在参数文件中正确输入了参数,则不会出现提示。如果某些参数丢失或不正确,将提示进行输入。

    1.9K10

    如何在 Kubernetes 上部署高可用应用程序

    部署策略 部署期间应用的策略或技术决定了 Pod 在部署期间是否仍然可用,或者是否会完全关闭并恢复。我们的目标是确保用户不会注意到任何事情,并且每个新的更改都会顺利、无缝地发生。...有了这三个,我们就可以知道应用程序是否已准备好运行,然后终止旧的 Pod/容器,如上面的“优雅终止”部分所述。 这些探针通过根据应用程序对其进行一些特定配置来实现这一点。...要安装HorizontalPodAutoscaler,必须首先安装metrics-server。...与基于节点池配置创建新节点的 ClusterAutoscaler 不同,Karpenter 分析要部署的工作负载并选择最佳实例来创建并在该节点上调度 pod。...以下是部署PDB 配置示例 apiVersion: policy/v1beta1 kind: PodDisruptionBudget metadata: name: my-pdb spec:

    31810

    Oracle 12c手工建库(非CDB及CDB创建)

    ),您可能必须设置环境变量,或至少验证它们是否正确设置。.../oracle/ora12c ORACLE_HOSTNAME=ydq05.ydq.com ORACLE_HOME=/app/oracle/ora12c/db_1 步骤3:选择数据库管理员身份验证方法 必须进行身份验证并授予相应的系统权限才能创建数据库...SQL> 步骤7:创建服务器参数文件 服务器参数文件使您可以使用该ALTER SYSTEM命令更改初始化参数,并在数据库关闭和启动保留更改。您可以从编辑的文本初始化文件创建服务器参数文件。...使用CREATE DATABASESQL语句创建CDB必须启用PDB并指定根文件和种子文件的名称和位置。...必须指定根文件和种子文件的名称和位置。   CREATE DATABASE语句成功完成后,您可以使用种子及其文件创建新的PDB。种子在创建后不能被修改。

    2K10

    dotnet 打包 NuGet 的配置属性大全整理

    ,请参阅 理解 C# 项目 csproj 文件格式的本质和编译流程 - walterlv 一些前置知识博客: 理解 C# 项目 csproj 文件格式的本质和编译流程 - walterlv 项目文件中的已知...进行 NuGet 发布的时候,将注释的 XML 文件带到 NuGet 包里面,可以方便让引用此 NuGet 包的项目获取到库的代码注释 EmbedAllSources 将源代码嵌入到 PDB 文件里面,...此时构建生成的 PDB 文件里面将包含项目的所有生成相关的源代码。...如此可以方便在发布给其他开发者使用时,其他开发者在调试可以获取到只读的源代码,从而让其他开发者更好进行调试 <!...修复 VisualStudio 构建没有将 NuGet 的 PDB 符号文件拷贝到输出文件夹 IncludeSymbols 设置是否输出符号文件,用于制作符号包,通常和 SymbolPackageFormat

    1.4K20

    PDB 文件

    PDB 文件 ---- 什么是 PDB 文件 PDB (Program Data Base) 即程序的基本数据,是 VS 编译链接生成的文件,每个程序集(EXE 或 DLL)都有一个与之对应的 PDB...有了这个文件,我们才能对程序进行 断点调试 ,才能一步步执行程序。 为了直观地展示 PDB 文件的内容,我们来做一个小实验。...注意:即使是同一份代码,在同一台计算机上编译,每次的生成的 PDB 都是不同的,一定要保存好发布版本的 PDB 文件。...接下来找到对应的 PDB 文件,检查其中 GUID 信息是否与 PE 一致,推荐使用 PdbInspector 来查看 PDB 文件的内部信息。...调试工具会通过路径和名字来查找 PDB 文件, 还会通过上面的 GUID 来确定 PDB文件 和 PE文件 是否真正匹配。

    93020

    让你发布的nuget包支持源代码调试

    Source Link 是一组包和规范,用于描述可以嵌入到符号、二进制文件和包中的源代码控制元数据。 Visual Studio 15.3+ 支持在调试从符号读取源链接信息。...为整个solution添加, 我们可以在.sln文件的同级目录下增加文件 Directory.Build.props, 然后把上面代码copy进行就可以了. ?...首先它的意思是把pdb的信息直接打包到dll文件中. 它的好处 一个.dll文件就够了, 不在要生成 .dll和.pdb 2个文件....比如我有模板代码在build生成, 或者由PublishRepositoryUrl生成的比如assemble attribute文件等. 没有设置的时候 ? 设置好了的时候 ?...验证我们的dll或者pdb已经支持SourceLink了 首先我们先安装sourcelink工具. dotnet tool install -g sourcelink 接着测试一下我们的dll是否已经支持了

    1.5K30

    dotnet build

    考虑到这一点,dotnet build 的产品还未准备好转移到另一台计算机进行运行。 要创建可部署的应用程序版本,需要发布该应用程序(例如,使用 dotnet publish 命令)。...这意味着如果没有其他任何特定于发布的逻辑(例如,Web 项目具有的逻辑),则应可部署生成输出。 隐式还原 构建需要 project.assets.json 文件,该文件列出了你的应用程序的依赖项。...可执行文件或库输出 项目是否可执行由项目文件中的 属性决定。...-f|--framework 编译特定框架。 必须在项目文件中定义该框架。 --force 强制解析所有依赖项,即使上次还原已成功,也不例外。...--no-self-contained 将应用程序发布为与框架相关的应用程序。 必须在目标计算机上安装兼容的 .NET 运行时才能运行应用程序。 自 .NET 6 SDK 起可用。

    1.9K20

    首个大众可用PyTorch版AlphaFold2复现,哥大开源OpenFold,star量破千

    它实现了 2/3 蛋白质结构预测的卓越成绩并在去年登上了《自然》杂志。更令人惊喜的是,DeepMind 团队不仅开源了模型,还将 AlphaFold2 预测数据做成了免费开放的数据集。...其实,AlphaFold2 软件系统的部署难度极大,并且对硬件的要求高、数据集下载周期长、占用空间大,每一条都让普通开发者望而却步。因此,开源社区一直在努力实现 AlphaFold2 的可用版本。...无论是否有 DeepSpeed,OpenFold 都能以全精度或 bfloat16 进行训练。...为了实现 AlphaFold2 的原始性能,该团队从头开始训练 OpenFold,现已公开发布了模型权重和训练数据。其中,训练数据包含大约 400000 份 MSA 和 PDB70 模板文件。...使用如下命令激活环境: source scripts/activate_conda_env.sh 停用命令: source scripts/deactivate_conda_env.sh 在激活环境下,编译

    60020

    生成类库项目同时生成的pdb文件是什么东东?

    Release 里的PDBpdb-only,出什么错了+错误在哪行。 由此我明白了,原来pdb文件包含了编译后程序指向源代码的位置信息,用于调试的时候定位到源代码,主要是用来方便调试的。...而程序在上线是不需要xml文件pdb文件的,可以进行配置,只生成dll文件。 平时做项目也没太注意过这个pdb文件是干什么的,刚才心血来潮,突然想搞清楚这个玩意到底有什么用? ?...定义: 生成类库项目除了生成dll文件外,还会生成一个同名的pdb文件,它是一个程序数据库文件,保存着调试和项目状态信息,使用这些信息可以对程序的调试配置进行增量链接。 ?...理解:pdb文件包含了编译后程序指向源代码的位置信息,用于调试的时候定位到源代码,主要是用来方便调试的。 ?...在程序发布为release模式,建议将 pdb文件删除, 同时,对外发布的时候,也把 pdb删除,有利于保护程序。

    1.2K10

    总结了 9 个绝佳的 Python Debug 工具

    但是,选择一个工具,开发者必须交叉检查各种事情。看看所提供的工具是否提供错误报告和警报功能、性能监测、错误跟踪和支持集成,以及它们是否与你的开发环境直接匹配。...还必须检查它们是否是开源的,如果是免费,是否还是具有包含高级功能。...可以在任何时候停止程序以进行调试。 开发人员可以使用PDB插入多个命令。 缺点 PDB只用CLI的方法是相当令人沮丧的 在收到命令,该工具会评估单个变量和表达式,不支持编辑。...主要特点 Pyshield有一个GUI调试器 部署Python脚本 运行加密的Python脚本 允许在跨平台发布Python脚本 支持模拟Emacs python-mode的编辑器 代码树浏览器 突出语法以减少...如果你是初学者,建议你关注和星标@公众号:数据STUDIO,这里有不少有用的知识总结与实战项目~ 因此,为了确保每个操作和设计在将来都能正常工作,开发者必须在产品发布之前不断地进行测试。

    1.4K50

    PDB文件详解

    PDB文件的介绍 PDB(Program Data Base),意即程序的基本数据,是VS编译链接生成的文件。...每个模块只会生成一个相同名字的PDB文件,并且模块生成的同时,会校验PDB文件生成GUID记录在模块内。这是因为调试,调试器强制要求每个模块必须PDB文件保持一致。.... the symbol paths specified in the Options dialog box (Debugging folder, Symbols node). 1是默认当前路径,2是编译链接记录在模块当中的路径...静态库的PDB文件 静态库也有自已的PDB文件,只不过其名字是VC80.PDB/VC100.PDB这样的名字。静态库的PDB文件会在链接合并到EXE/DLL的PDB文件中去。...所以如果静态库作第三方库发布,可以不用生成PDB文件,这样调用者链接就不会报警告。 通过PDB文件可以获取函数名及对应的代码行号,更多信息可以参考微软给的示例。

    2K10

    cgal4.4编译vs2005版本

    为了构建工具,我需要更改为使用DevPartner编译器(nmcl.exe)。 此外,我需要将编译器设置添加到现有的CXX_FLAGS以进行检测。 我该如何去做这件事?...我有我的性能编译选项。 所以我回去并在CMakeCache.txt文件中修改了这一行,打开了GUI,configue,generate //所有构建类型中编译器使用的标志。.../ nmbcon是一个编译标志,表示使用BC instrumentation / nmtxon将用于覆盖率分析 CPP = cl.exe CPP_PROJ = / nologo / MD / W3 /...在第一次构建之后的“在哪里构建二进制文件”中,将有.vcxproj.user文件。这是需要添加检测标志的位置 <?xml version="1.0" encoding="utf-8"?...仅供参考,如果您在VS2010中打开解决方案并对其进行检测,则会将其添加到vcxproj.user文件中。仪表设置也是通过project / config进行的。

    22110

    【Rust学习】01_入门

    在运行 Rust 程序之前,必须使用 Rust 编译器对其进行编译, rustc 方法是输入命令并向其传递源文件的名称,如下所示:$ rustc main.rs如果具有 C 或 C++ 背景,会注意到这类似于...、可执行文件(在 Windows 上main.exe,但在所有其他平台上都是主要文件),以及在使用 Windows 显示包含扩展名为 .pdb 的调试信息的文件。...打印到的终端。如果更熟悉动态语言(如 Ruby、Python 或 JavaScript),您可能不习惯将程序作为单独的步骤进行编译和运行。...如果你在编写代码不断检查你的工作,使用 cargo check 将加快让你知道你的项目是否仍在编译的过程!...发布生产当的项目最终准备好发布,您可以使用 cargo build --release 它进行优化编译

    8600

    11 个常见 K8S 避雷指南详解

    此外,避免赋予容器完全权限和赋予容器的主机文件系统权限也很重要。这意味着可以利用容器替换恶意二进制文件,从而入侵整个主机。 为防止容器权限过高,必须仔细配置权限设置,切勿以高于所需的权限运行进程。...的节点和集群时常需要升级或退役。PodDisruptionBudget (pdb) 是集群管理员和集群用户之间的服务保证 API。 请务必创建 pdb,以避免因节点耗尽而造成不必要的服务中断。...这是因为,您不能指望 Kubernetes 调度器为的 pod 强制执行 anti-affinite。必须明确定义它们。 .........要避免常见错误和陷阱,必须密切关注与 Kubernetes 的交互,并了解它与已部署服务的交互方式之间的差异。 不要指望一切都能自动运行,要投入一些时间让的应用程序成为云原生的。...通过避免这些错误,您可以高效地进行 Kubernetes 部署,并提高 Kubernetes 环境的稳定性、性能和安全性。

    26110
    领券