【问题标题】:MSbuild make /property:OutDir skip missing filesMSbuild make /property:OutDir 跳过丢失的文件
【发布时间】:2011-12-29 23:16:38
【问题描述】:

在使用/p:OutDir 时,是否有办法让 MSBuild 跳过丢失的文件?

我正在与 TeamCity 合作,不断构建一个大型网络项目。我编写了一个程序来处理我们的持续部署,但我遇到了 MSbuild 的问题。我正在使用属性开关 OutDir 来输出我需要的网络文件。

这是我的 msbuild 命令:

msbuild project.sln /property:Configuration=Release /property:OutDir=R:\BuildOutput\

由于缺少文件,MSBuild 失败并显示 OutDir。示例:

error MSB3021: Unable to copy file "Api\Js\excanvas.min.js" to "R:\BuildOutput\_PublishedWebsites\Web\Api\Js\excanvas.min.js". Could not find file 'Api\Js\excanvas.min.js'.

这是一个非常大且旧的项目,有很多丢失的文件。有没有办法让 MSBuild 跳过这些文件和/或忽略这些错误。

谢谢,我们将不胜感激。

添加丢失的文件是一种快速修复,但我不想每次遇到此问题时都添加所有丢失的文件。

【问题讨论】:

    标签: deployment msbuild teamcity continuous-deployment


    【解决方案1】:

    这里的问题是您的 csproj 显式或隐式指向不存在的文件

    /p:OutDir 只是改变了已经发生的事情的位置。

    所以不幸的答案是……去解决这个问题,不要责怪信使。

    编辑:顺便说一句,在 MSBuild 调用参数中添加 /v:diag 将为您提供项目列表的完整转储,因为它们是在处理期间计算的

    【讨论】:

    • 奇怪的是,当使用 Visual Studio 编译项目时,它不会抱怨缺少文件 - 或者至少无论如何都能够编译项目。据我了解,Visual Studio 只是使用 MsBuild,您认为一定有办法不用担心丢失文件。
    • @RobinWinslow 当$(BuildingInsidevisualStudio) == true 时,构建的各个方面都被排除或优化。一个关键是MvcBuildviews - 去搜索它。但真正的答案是,它一直是 MSBuild 脚本,您可以打开诊断程序来让它告诉您谁在(或不)在什么时候做什么。然后您会看到如何影响该位以进行您的竞标。去购买 Inside MSBuild - 没有人会后悔!
    • 这样一个老问题的快速回复。谢谢。不过我不会什么都买。我真的不喜欢微软堆栈开发人员的答案经常涉及购买软件或书籍。有没有什么方法可以在不购买软件的情况下检查 VS 用于构建的属性?
    • 这个问题中的参数似乎有效:stackoverflow.com/questions/3412900/…
    • @RobinWinslow 诊断工具是内置的。虽然有一个调试器工具,但我从未使用或需要它。这本书对我来说是必须的 - 没有介绍性文档充分解释 MSBuild 包括调试和诊断 很接近 - 请参阅stackoverflow.com/a/1339390/11635 它的成本比你浪费时间在基础知识或尝试使用 SO 并阅读不同风格的博客上的 sn-ps 信息来调试应该很简单的东西
    猜你喜欢
    • 1970-01-01
    • 2019-05-11
    • 2019-02-14
    • 2012-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多