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

为什么我在构建之后会有这个obj\Debug\TempPE文件夹?[肯定不是复制品]

在构建项目后,出现obj\Debug\TempPE文件夹是因为编译器在构建过程中生成了临时程序集(Temporary Portable Executable)。这些临时程序集包含了编译后的中间代码和符号信息,用于在调试过程中提供更好的可读性和可调试性。

具体来说,obj\Debug\TempPE文件夹中的临时程序集包含了编译后的类、方法、变量等信息,以及调试所需的符号表。这些临时程序集在调试过程中会被动态加载,以支持断点调试、变量查看、单步执行等调试操作。

临时程序集的生成有助于提高调试的效率和准确性。通过将编译后的代码和符号信息分离,可以减小最终生成的可执行文件的大小,并且可以在调试过程中更方便地定位和修复问题。

对于这个obj\Debug\TempPE文件夹,可以通过以下方式处理:

  1. 忽略它:这个文件夹是编译器自动生成的临时文件夹,不会影响项目的运行和发布。可以将其添加到版本控制的忽略列表中,避免干扰代码管理。
  2. 清理它:可以定期清理这个文件夹,以释放磁盘空间。在项目构建完成后,可以手动删除obj文件夹或使用构建工具的清理命令来清理临时文件。

总结起来,obj\Debug\TempPE文件夹是编译器生成的临时程序集文件夹,用于支持调试过程中的断点调试、变量查看等操作。它是正常的构建过程中的产物,可以忽略或定期清理。

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

相关·内容

svn 提交代码 自动过滤技巧

操作   在用svn管理版本时,有时希望提交到服务器时,能过滤掉指定后缀名的所有文件,或指定名称的文件夹、文件名。   ...常见的文件夹名称和文件名如下: bin obj debug temppe *.suo *.pdsync *.projdata *.vbproj.user *.csproj.user *....debug temppe *.suo *.pdsync *.projdata *.vbproj.user *.csproj.user *.vbproj.webinfo *.csproj.webinfo...做的操作是,新建文件夹,在其中新建Debug目录,suo文件,还有其他文件。测试了在上述配置添加和未添加的情况,如图:   添加配置前: ?   添加配置后 ?   貌似已经略有成效。   ...总结   设置了过滤Debug、Release等文件夹,如果有文件也叫这个名字,而且是无后缀名的,该文件同样被过滤。

1.5K50

Android Studio 打包APK(详细版)

创建完成之后,你可以运行一下,运行在真机或者虚拟机都可以。 二、生成Debug和Release包 ?...当你看到这个页面的时候,这个APK就已经安装在这个模拟器上面了,而这个APK就是debug版本的,但是它是运行时生成的,不是打包生成的。 怎么查看这个APK呢?...然后输入这个jks和别名的一些相关信息,上方的商店密码和别名密码可以设置为一样的,这样便于记忆,只不过安全系数就降低了。上面设置的是123456,信息都设置好了之后,点击OK。 ?...下面通过秘钥jks来生成debug包试试看。 ? 点击Finish。 ? 把这个发到你的手机上。你会发现也是可以安装的,这是为什么呢?...---- 总结   这些内容是开发中常见的,因此记录下来。希望能对您有所帮助,山高水长,后会有期~

7.2K52

Roslyn 如何在 Target 引用 xaml 防止文件没有编译

使用新的项目格式,可以使用 Target 添加项目,但是有一些项目需要在合适的时候添加,如果添加早了,那么会让用户看到这些文件,如果添加的时间是引用编译之后,那么文件将无法进行编译。...那么现在尝试使用 Target 来添加这两个文件,为什么需要使用 Target 而不是直接写 ItemGroup 是因为需要在用户的 VisualStudio 看不到这些文件。...如果这时将会 MainWindow.xaml 放在了一个文件夹 View 只要有引用这个文件,无论有没设置是否隐藏,开发者都可以看到 View 文件夹,而且可以删除这个文件夹,如果删除了这个文件夹,那么就无法编译...但是如果放在 Target 里就无法看到引用的文件夹,也就无法删除文件夹,通过这个方法可以让使用源代码打包 如使用下面的代码,即使没有设置 MainWindow 不可见,用户也是看不见这个文件 <...所以我就使用打包 nuget 包但是引用的是源代码的方式,这样开发者安装 nuget 之后可以快速调试安装的库的源代码。

1K10

Roslyn 如何在 Target 引用 xaml 防止文件没有编译

使用新的项目格式,可以使用 Target 添加项目,但是有一些项目需要在合适的时候添加,如果添加早了,那么会让用户看到这些文件,如果添加的时间是引用编译之后,那么文件将无法进行编译。...那么现在尝试使用 Target 来添加这两个文件,为什么需要使用 Target 而不是直接写 ItemGroup 是因为需要在用户的 VisualStudio 看不到这些文件。...如果这时将会 MainWindow.xaml 放在了一个文件夹 View 只要有引用这个文件,无论有没设置是否隐藏,开发者都可以看到 View 文件夹,而且可以删除这个文件夹,如果删除了这个文件夹,那么就无法编译...,也就无法删除文件夹,通过这个方法可以让使用源代码打包 如使用下面的代码,即使没有设置 MainWindow 不可见,用户也是看不见这个文件 <Target Name="MoqakermirLaqouLurter...所以我就使用打包 nuget 包但是引用的是源代码的方式,这样开发者<em>在</em>安装 nuget <em>之后</em>可以快速调试安装的库的源代码。

72320

AndResGuard编译速度优化

ACTION 开发之前,肯定是要先进行方案梳理还有竞品分析的,先找找有没有什么竞品可以帮助我们。 我们调研的过程中,美团,腾讯,头条都有对应的资源文件的混淆方案。...variantName代表构建的一个变种,可以是多渠道构建也可以是debug release的变种。...为什么要选择这个节点? 当我们编译一个apk的时候,会在build/intermediates文件夹下生成很多输入输出的文件,这个之前开发transform的时候找到的小技巧。...然后就在这个文件夹下搜索,并观察哪个是我们资源文件编译完成的任务节点呢?...这个文件夹下面会有个out文件目录,其中会包含一个.ap_的文件,基于一个开发的敏锐的嗅觉,发现真相只有一个(shi n ji tsu wa i tsu mo hi to tsu),用jadx去反编译了下这个文件

49630

AndResGuard编译速度优化

ACTION 开发之前,肯定是要先进行方案梳理还有竞品分析的,先找找有没有什么竞品可以帮助我们。 我们调研的过程中,美团,腾讯,头条都有对应的资源文件的混淆方案。...variantName代表构建的一个变种,可以是多渠道构建也可以是debug release的变种。...为什么要选择这个节点? 当我们编译一个apk的时候,会在build/intermediates文件夹下生成很多输入输出的文件,这个之前开发transform的时候找到的小技巧。...然后就在这个文件夹下搜索,并观察哪个是我们资源文件编译完成的任务节点呢? ?...这个文件夹下面会有个out文件目录,其中会包含一个.ap_的文件,基于一个开发的敏锐的嗅觉,发现真相只有一个(shi n ji tsu wa i tsu mo hi to tsu),用jadx去反编译了下这个文件

2.5K20

从零开始写 PHP 扩展

Google 上搜 PHP 扩展开发,大部分都是复制品文章,甚至有些人连操作都没有操作过就搬运了自己的博客。不过也有几篇好教程,但是都是 PHP 5 时代的产物,隐藏着非常多的坑。...所以,总结了一下: 如果你是直接下载 PHP 的源码,或者已经 release 的版本分之下,你可以执行这个命令 $ cd ext $ ....生成了扩展之后,我们会看到四个文件和一个文件夹。现在这个阶段,我们只需要用到两个文件, .c 文件和 .h 文件。 一个小坑 我们生成好扩展之后,我们可以试着编译一下 $ phpize $ ....虽然大写的有宏定义,但是为什么会报错,也不太清楚了。...定义一个函数 想,大多数人写扩展,肯定至少希望实现一个函数,不会是要几个全局变量就去写个扩展的吧(雾 这里 PHP 给我们提供了一个有用的宏 PHP_FUNCTION。

1.5K70

四道Java基础题,你能对几道?

这就是为什么这道题的答案回事false和ture了。当声明的Integer对象的值-128-127之间的时候,引用的是同一个对象,所以结果是true。...好的,第二个问题来了,为什么要加final修饰符?相信大多数小伙伴都没有思考过这个问题,但凡使用的时候,直接加上就得了,从来没去深究过其中的原理。...局部变量被final修饰之后,此时会在内存中保有一份局部变得的复制品,当内部类访问的时候其实访问的是这个复制品。这就好像是把局部变量的生命周期变长了。...说到底还是Java工程师提前把这个坑给我们填了,不然不知道又会有多少小伙伴会为了内部类局部变量而发愁了。...有一个微信公众号,经常会分享一些Java技术相关的干货。如果你喜欢的分享,可以用微信搜索“Java团长”或者“javatuanzhang”关注。

1.5K10

VS中Qt自动生成moc_XXX.cpp文件的一些问题

因此我们可以知道,这个新的文件不是“替换”掉旧的文件,而是与原文件一起参与编译。另外,我们还可以看出一点,moc 的执行是预处理器之前。因为预处理器执行之后,Q_OBJECT 宏就不存在了。...全删除了(是VS的工程项目中删除的,文件夹中删除了,无所谓,每次编译的时候,会自动moc,这个过程是你XXX.cpp文件的设置)。...但是,这里面有这么多个相同的moc_XXX.cpp,为什么要针对删除的这个? ? 经过呕心沥血的对比查找,发现就是一个设置的问题,需要修改QtWebTest.vcxproj这个文件。 ?...改过之后,No warning。大功告成,Enjoy!...4.反思 排除这个warning的过程其实是很痛苦的,现在看着思路很清晰,但真实情况是各种碰壁,当初是吧整个GeneratedFiles\Debug 都删除了,根本没有对比的对象(表情:笑着哭),是对比一些好的工程

3.2K21

WPF 框架开发 ColumnDefinition 和 RowDefinition 的代码在哪

的 VisualStudio 更新到 2022 就构建不通过 WPF 仓库,提示 Grid 的代码里面找不到 ColumnDefinitionCollection 和 RowDefinitionCollection...预览版构建失败的坑,顺便告诉大家 WPF 仓库里面那些有趣的代码存放方法 本文非新手友好,本文的 WPF 框架开发不是说开发一个基于 WPF 框架的应用,也不是指开发 WPF 应用。...而是开发 WPF 这个框架,这是做底层开发的博客 以下是 VisualStudio 2019 进行构建,十分简单,只需要部署环境完成之后进行构建即可 ?...\obj\PresentationFramework\Debug\net6.0\ColumnDefinition.cs f:\lindexi\Code\wpf\artifacts\obj\PresentationFramework...\Debug\net6.0\RowDefinition.cs 那为什么本文开始依然构建失败呢?

77330

Intellij IDEA debug模式下项目启动慢无法启动的事件解决过程记录

项目无法启动了 简单的介绍一下事件过程:周一的早上,收到前端同事抛过来的一个任务,说是一个接口无法正常返回数据,于是就让他把参数发过来,想试着本地重现一下并且将问题修复掉,这种情况肯定是要通过debug...由于是第一次碰到这个问题,所以不太清除到底是什么原因,只记得当时重复的试了几次项目的clean install,但是这几次的重新构建和重新启动的结果都是无效,项目依然无法通过debug模式启动。...虽然这个事情不大,但是当时的确实是真切的觉得遇到麻烦了,当时的心里已经觉得不是特别好处理这件事,为什么呢?...windows上解决了这个问题后,脑袋里就有了这个想法,Method Breakpoints的问题在windows和mac上是不是都会出现,答案是肯定的,一旦有方法断点都会卡住。...到此为止,事件的起因、经过、结果都大致介绍完毕,至于最后这个答案,觉得不是特别满意,官方文档里也只是说了一下,这个做法会使debug变慢,但是更深层次的原因或者说原理还需要再去研究研究,现在依然查一个自己满意的答案

3.6K70

使用devtools导致的类型转换异常及Spring Devtools 源码初步解析

至此,问题解决了,这个问题困扰了笔者很久,还是同事提示考虑到是热启动插件的问题,个人来讲的话想的有点偏,总觉得是序列换的问题,说来也是惭愧。...developer那么就会创建Restarter并将当前线程挂起然后重新起一个新的子线程来创建应用上下文 02 实时监听 主要是通过类FileSystemWatcher进行实时监听 首先启动过程如下 1 构建...资源监控的前提是你启动了本地客户端,如果你启动之前修改了文件,这个变化是不会推送到远程应用的。 远程DEBUG通道: 定位和解决问题时,Java远程调试是很有用的。...不幸的是,如果你的应用部署异地,远程debug往往不是很容易实现。而且,如果你使用了类似Docker的容器,也会给远程debug增加难度。...远程debug是很慢的,所以你最好设置好debug的超时时间(一般来说60000是足够了)。 如果你使用IntelliJ IDEA来调试远程应用,你一定要把所有断点设置成悬挂线程,而不是悬挂JVM。

1.4K30

Gradle基础|自定义插件并上传到JitPack

Gradle 中,插件相当于打包了可重用的一些构建片段,使其可复用为多个项目去构建。...有一个比较有意思的问题,觉得你可能会有? 这些插件一般还要在model中再依赖其他组件,如果只用代码组件,而不启用这些插件,那还能正常使用吗?...其实一般情况下,不影响你开发中正常使用,一个合格的三方库,插件没启用时也不会影响最终的使用效果,无非就是最终的实现方式上会有所差别,比如性能上。...类似阿里路由插件,如果不启用插件,只依赖代码组件依赖,则在最终找路由表时就只能通过反射去找,而不是通过编译期间生成的路径映射,所以一般我们debug下可以关闭某些依赖,从而减少debug时间,不过一般而言...提示找不到这个插件,为什么不是 settings.gradle 中引入了吗? 我们最上面说过了,buildSrc 本身是一个特殊的项目,Gradle 会自动编译并引入。

1K10

Flutter引擎——下载、编译和调试

看到这里你可能会有这么个疑问,研究这玩意儿干啥?就单纯为了装逼吗?实际上还真不是为了装逼。...接下来来到GN所在的tools路径,该路径下进行如下构建代码的执行: #构建iOS设备使用的引擎 #真机debug版本 ..../gn --unoptimized 构建完成会有四个Xcode工程 最后一步,就是使用ninja编译工程,这个操作是最耗时并且烧电脑的了。...接下来通用配置文件中增加两项配置,如下: 可以看到,配置的LOCAL_ENGINE环境变量是ios_release_unopt,但是Debug模式下编译的代码,此时会编译不通过。...第二步,通过GN来构建编译Flutter引擎所需的文件。构建的结果就是,out文件夹下面生成了四个Xcode工程文件夹。 第三步,通过ninja编译上面第二步构建出来的4个Xcode工程。

2K41

分享 Go Web 项目的程序架构和目录结构规划(转)

无论何时,如果要删除功能,只需主文件中注释实例即可将其删除。 /config 认为这个包非常重要,因为发现将所有配置保存在一个位置而不是分散项目的每个角落是非常有用的。...不知道您是否遇到了这个问题,或者对您来说,也许这不是问题,但是确实遇到了一些问题,试图以一种很好的方式导入配置。...深入了解文件夹结构之前,有两点要向您坦白,更喜欢使用 ORM,因为它更容易使用,并且提供了一种处理对象的好方法而不是使用 SQL 查询并将该数据转换为数组并尝试调试简单的查询。.../vendor 这个文件夹是唯一不需要更改的地方,这里下载并存储了项目中导入的所有外部依赖项或软件包,为了你的构建工作。...,而且需要在几个月或几年之后执行这个过程,所以我可能需要花一些时间来弄清楚如何进行构建

2.7K20

dotnet UOS 国产系统上使用 Xamarin Forms 创建 xaml 界面的 GTK 应用

本文告诉大家如何在 UOS 国产系统上,通过 Xamarin.Forms 使用 XAML 写界面逻辑,构建出 GTK 应用 本文将使用特别底层的方法告诉大家如何一步步创建,而不是告诉大家如何在 IDE...接着创建一个控制台项目,假定这个项目是 A 项目,这个控制台项目将会添加 Xamarin.Foms 负载,然后将构建出基于 Xamarin.Forms 的界面 dll 文件,接着将由 GTK 项目,假定命名为...有小伙伴说, Windows 下,用 VS 新建一个 Xamarin.Forms 项目之后,再拷贝到 UOS 上,也是可以的,但是有一点需要注意的是不能拷贝 bin 和 obj 文件夹过去,原因是...obj 文件夹存放了很多依赖本机电脑的文件夹绝对路径的文件,如 nuget 还原里面的 project.assests.json 文件将会包含 fallback 路径,如果拷贝到 Linux 下的系统...文件夹,可以 UOS 这个 Linux 系统下删除 obj 文件夹,解决 Xamarin Forms Linux 系统构建失败的问题 先忽略从Windows等系统创建好了 Xamarin Forms

2.6K10

如何做一个任何电脑都能用的python程序?

两者各有优缺点,不过现在大部分都使用pyinstaller去打包exe,为什么不用py2exe,后面你就知道了。...使用pyinstaller的方法也很简单,用cmd窗口也行,这里用的是pycharm里,如果用cmd的话需要先cd到项目的目录下面,然后输入 pyinstaller -F -w 程序名.py。...因为没加图标,所以这里默认是这个图标,当然可以自己修改。...,且不显示命令行窗口的程序就是 pyinstaller -F -w 程序名.py 如果想要给程序换一个图标可以加个-i pyinstaller -F -w -i 图标文件名 程序名.py 打包后之后你的项目会出现两个文件夹...有时候打包之后会出现这个问题, ? 这里就是版本问题,把numpy回退一下版本,换成低一点的版本即可。

3.6K30

opencv3.4+contribute编译及官方自带samples编译

完了之后上面会有一篇红色,不用担心,找到OPENCV_EXTRA_MODULES_PATH,然后把\opencv_contrib-master\modules 的路径填进去,可以进行第二次configure...然后点击generate,提示完成之后大功告成一半。 ? done 生成库文件 然后打开build文件夹,打开这个工程文件: ? opencv ? allbuild ?...debug 这里分别选择debug和release,是64位生成的,然后ALL_BUILD左键分别生成,这个时间也比较久,机器好的话就比较快。出现 成功xx个,失败0个就OK了。...opencv_bin 这里的路径只是一个演示(这个的时候用的是笔记本,笔记本配置的opencv不是自己编译来的那个)这里应该填的是:\opencv\build\install\x64\vc14...done 看到这里就说明成功生成了,这个图是笔记本上编译samples,用的还是3.3,不过编译过程是完全一样的。 生成解决方案。 2.1 打开解决方案。

2K10

浅说驱动程序的加载过程

本文不是对Rootkit细节的描述,但却介绍了通常Rootkit是如何将自己加载到内核的。本文中,将循序渐进的展示一个驱动程序的编译,加载,以及执行的过程。...安装完成之后开始菜单中会有Windows Driver Kits文件夹,其中包含的Build Environments文件夹是要注意一下的,稍后还会提到这里。...编译驱动程序通常使用build工具来构建的。 内核驱动程序通常是用C语言编写的,但这里为了省事,程序使用了一点简单的汇编代码极少,所以这个程序很简单。...这一对宏驱动程序开发中极为常见,但却又很容易迷惑初学者,所以在这里提一下。 明白了这些之后,我们新建一个项目文件夹,把以上代码保存为simpledriver.c。...单击之后出现命令提示符,转到刚刚建立的项目文件夹,输入build并回车确认。短暂的等待之后,驱动编译完成。这时在你的项目文件夹里面会出现一个保存有新创建的驱动程序的新的文件夹

2.8K90

将 Source Generator 生成的源代码保存到本地文件

默认的生成源代码将会存放到 (IntermediateOutputPath)\generated 文件夹里面,这里的 (IntermediateOutputPath) 由 obj\(Configuration...)\(TargetFramework.ToLowerInvariant())\ 构成,调试下的输出大概是 obj\Debug\net8.0\ 等类似的文件夹里 接着将会拼接上源代码生成器分析器项目的程序集名与具体的源代码生成类型...的生成器类型使用如下代码所生成的名为 GeneratedSourceTest 的代码,将会存放到 obj\Debug\net8.0\generated\YaijowhelawFerhecarnal\YaijowhelawFerhecarnal.CodeCollectionIncrementalGenerator...如果在多框架项目下没有配置加上 TargetFramework 将会造成生成的源代码存放的文件冲突 上面代码添加之后,预计将会导致构建不通过,一般的保存信息如下 error CS0111: 类型“Program...博客导航 本文以上代码放在github 和 gitee 欢迎访问 可以通过如下方式获取本文的源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹命令行里面输入以下代码,即可获取到本文的代码

15210
领券