msbuild.exe 保持打开状态,锁定文件

2024-02-26

我使用 TeamCity,它又调用 msbuild (.NET 4)。我有一个奇怪的问题,在构建完成后(构建是否成功似乎并不重要),msbuild.exe 保持打开状态,并锁定其中一个文件,这意味着每次 TeamCity 尝试清除其工作目录,它会失败,并且无法继续。

有时候是这样的almost每次。

我对这个问题真的很迷茫,所以我会尽力提供尽可能多的细节。

  • 服务器是 Intel Core i7、2 GB RAM,采用 Windows Server 2008 标准 64 位 SP2。
  • 在 TeamCity 中,msbuild 运行程序配置为/m命令行参数(表示使用多核)
  • 有问题的文件是ALWAYS.NET 项目之一中引用的同一外部 DLL,位于路径中External Tools\Telerik\Telerik.Reporting.Dll。 (还有其他几个 .DLL 文件包含在External Tools类似的路径结构中的 dir 永远不会导致此问题)。目前这是 Telerik 报告的试用版,以防有任何影响。
  • 当问题发生时,总会有几个msbuild.exe *32任务管理器中列出的进程:我相信有 7 个。使用 Process Explorer,它们看起来都像顶级进程(没有父进程)。它们都使用 20-50MB 内存和 0.0% CPU。
  • 如果我等待 1-3 分钟,msbuild.exe 进程会自行退出,然后 TeamCity 可以正确更新工作目录。
  • 如果我手动终止 msbuild 进程,TeamCity 的更新将立即再次运行。
  • Windows 中的索引服务已关闭(尽管前两点几乎确认是 msbuild.exe 导致了问题)。
  • Telerik.reporting.dll 上没有特殊属性。唯一的 SVN 属性是svn:mime-type = application/octet-stream

以前有人遇到过这个吗?


Use msbuild with /nr:false.

简而言之:MSBuild 试图快速完成很多事情,尤其是并行构建。它将产生大量“节点” - 可以编译项目的单独的 msbuild.exe 进程,并且由于进程需要一点时间来启动,因此在构建完成后,这些进程会挂起(默认情况下,我认为是 15 分钟) ),这样如果你碰巧很快再次构建,这些节点可以被“重用”并节省流程设置成本。但是您可以通过使用上述命令行选项关闭 nodeReuse 来禁用该行为。

也可以看看:

  • 并行构建后,MSBuild 和 ConHost 保留在内存中 http://connect.microsoft.com/VisualStudio/feedback/details/554791/msbuild-and-conhost-remain-in-memory-after-parallel-build

  • MSBuild 命令行参考 http://msdn.microsoft.com/en-us/library/ms164311.aspx

  • 不锁定自定义 MSBuild 任务 DLL 的并行构建 http://devnet.jetbrains.com/thread/286796

  • MultiProc MSBuild 中的节点重用 https://learn.microsoft.com/en-us/archive/blogs/msbuild/node-reuse-in-multiproc-msbuild

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

msbuild.exe 保持打开状态,锁定文件 的相关文章

随机推荐

  • 加载tensorflow模型而不导入tensorflow

    是否可以训练张量流模型 然后将其导出为无需张量流即可访问的模型 我想将一些机器学习应用到一个学校项目中 其中代码在在线门户上提交 但它没有安装张量流 只有标准库 我可以上传其他文件 但任何 TensorFlow 文件都需要 TensorFl
  • 什么是网络线程?

    由于一些自身引起的问题 我的 iPhone 应用程序崩溃并收到以下错误 Tried to obtain the web lock from a thread other than the main thread or the web thr
  • GraphQL 查询从 GitHub 存储库获取文件信息

    我想使用 GitHub 存储库来存放我的 Gatsby 网站中的帖子 现在我正在使用两个查询 首先是获取文件的名称 viewer repository name repository name object expression maste
  • perl xs 模块编写 - 使用同一 xs 文件中的另一个函数

    我是 XS 的初学者 花了一些时间在网上寻找这个答案 但没有运气 问题是 XS 更改了函数的名称 当它进行编译时 我会得到一个未定义的引用错误 例如 考虑下面的 XS 代码 size t matrixIndex colIndex rowIn
  • 如何在 macOS 中检查应用程序权限 | Python

    我是 Mac 新用户 我正在做一个Python截屏的应用程序 它完美地工作在Linux and Windows 当我打开我的应用程序时 在Mac 我注意到我必须获得许可System Preferences gt Security Priva
  • JavaScript 函数和新函数的区别

    下面的 JavaScript 代码让我很困惑 谁能帮我理解一下 为什么 PersonY 没有原型属性 PersonX function PersonY new function alert PersonX prototype alert P
  • 为什么 Django REST Framework HyperlinkedModelSerializer 无法形成 URL?

    DRF 新手 只要我不在字段中包含 url 一切都会正常 这是我所得到的 序列化器 class TaskSerializer serializers HyperlinkedModelSerializer class Meta model T
  • 项目应用程序未安装

    我正在打开一个显然是在 Visual Studio 2003 上构建的解决方案 不确定 我对此一无所知 并尝试迁移到 2010 当尝试迁移时 我收到消息 未安装项目 的应用程序确保已安装项目类型 csproj 的应用程序 如果我打开解决方案
  • 如何在 C# 中从另一个应用程序启动一个应用程序?

    我有两个桌面应用程序 关闭第一个应用程序后 第一个应用程序将启动第二个应用程序 完成第一次申请后如何开始第二次申请 我的第一个应用程序创建了一个单独的桌面 Use the 工艺类 http msdn microsoft com en us
  • 将 ASP.NET MVC 3 Web 角色添加到 Windows Azure 项目时出现冲突版本错误

    安装 Windows Azure Tools 1 4 后创建新项目时出现以下错误 检测到 ASP NET 网页版本冲突 指定版本为 1 0 0 0 但 bin 中的版本为 2 0 0 0 要继续 请从应用程序的 bin 目录中删除文件或删除
  • 如何在 Python 中使用 Selenium 运行无头 Firefox?

    我正在使用 python selenium 和 firefox 运行此代码 但仍然得到 head 版本的 firefox binary FirefoxBinary C Program Files x86 Mozilla Firefox fi
  • 如何使用axios下载文件

    我使用 axios 来处理基本的 http 请求 例如 GET 和 POST 并且效果很好 现在我也需要能够下载 Excel 文件 这可以用 axios 实现吗 如果是这样 有人有一些示例代码吗 如果没有 我还可以在 React 应用程序中
  • 用于 eclipse 使用的 Clearcase 插件

    我是 Clearcase 和使用版本控制系统的软件开发的新手 我目前正在使用clearcase进行版本管理 我使用eclipse IDE进行软件开发 我从 sourceforge net 网站通过互联网安装了 eclipse 的clearc
  • 如何从命令行将环境变量传递给 Codeception YML 文件?

    我总是在 Codeception YML 文件中看到这种事情 modules enabled PhpBrowser url URL 如何从命令行将 URL 传递给 Codeception 或者任何其他方式 它记录在https codecep
  • 为我的 Rails 应用程序实现观察者模式

    我目前正在使用 Rails 3 0 7 和 ruby 1 9 2 并制作一个 Rails 应用程序 其中包含从数据库加载的视频 同时由 FlowPlayer 渲染 以及基于视频的一组幻灯片 现在 我想将幻灯片与视频同步 对于时间安排 我要求
  • 查找丢失的 css 类和 id 的最简单方法

    如何识别代码中引用但 css 文件中缺失的 css 类或 id 我可以使用 Firebug 中的任何功能吗 Thanks Firebug 不会这样做 我能想到的任何工具也不会这样做 因为这不是一项常见或高回报的任务 然而 它is一个常见的任
  • 为什么当我将 PermGen 设置为 128M 以上时,我的 Sun JVM 无法初始化?

    我需要增加我的永久代 目前我将以下内容作为命令行参数传递 XX PermSize 128m XX MaxPermSize 128m 这有效 但是 如果我尝试增加这些值 我的 JVM 无法初始化 并给出以下错误 2009 06 18 01 3
  • 根据定义的 i 创建具有动态列名称和重复值的循环

    我有以下数据框 id lt c A B C col1 lt c 1 3 5 col2 lt c 6 12 9 col3 lt c 2 4 30 df lt data frame id col1 col2 col3 本质上 我希望每个 i 都
  • 一种语言可以在不支持数组的情况下实现图灵完备吗?

    如果一种语言有控制结构和变量 但不支持数组 列表 内存访问和分配等 它能是图灵完备的吗 也许如果您可以创建的变量数量没有限制 您可以通过创建变量来模拟数组 例如array 1 array 2 array 6000并手动循环它们 并以某种方式
  • msbuild.exe 保持打开状态,锁定文件

    我使用 TeamCity 它又调用 msbuild NET 4 我有一个奇怪的问题 在构建完成后 构建是否成功似乎并不重要 msbuild exe 保持打开状态 并锁定其中一个文件 这意味着每次 TeamCity 尝试清除其工作目录 它会失