【问题标题】:NAnt + MSBuild (4.0) == MSBuild launch failure w/directory not found errorNAnt + MSBuild (4.0) == MSBuild 启动失败 w/directory not found 错误
【发布时间】:2011-06-08 05:54:27
【问题描述】:

我已经在基于 VM 的新构建服务器 (Win7-64 Pro) 上运行了 CC.Net 和 NAnt(以及 MSBuild)。

CC.Net 可以很好地调用 MSBuild - 但在处理项目范围的构建时我遇到了问题。条件只是没有我需要的。甚至没有关闭。

所以我决定通过使用 NAnt 调用 MSBuild 来处理这些情况,但每次都会失败。当我从命令提示符运行 nant 脚本时,我得到了这个:

[loadtasks] Failure scanning "C:\nant\bin\extensions\common\2.0\Collection
Gen.dll" for extensions. Could not load file or assembly 'Microsoft.VSDesigner,
Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of
its dependencies. The system cannot find the file specified.
Buildfile: file:///c:/c7/projects/dyndata/dyndata.build
Target framework: Microsoft .NET Framework 4.0
Target(s) specified: build


build:

[loadtasks] Scanning directory "c:\nantcontrib\bin\lib" for extension assemblies
.
     [echo] Building DynData v7.0.7

BUILD FAILED

c:\c7\projects\dyndata\dyndata.build(24,12):
Failed to start MSBuild.
    c:\c7\projects\dyndata\dyndata.build(24,12):
    External Program Failed: C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbui
ld.exe (return code was 1)

Total time: 0.4 seconds.

c:\c7\projects\dyndata\dyndata.build(24,12):
Failed to start MSBuild.
    c:\c7\projects\dyndata\dyndata.build(24,12):
    'C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe' failed to start.

        The directory name is invalid

Designer 程序集存在于这台机器上,它安装了 VS2010 Pro。 构建文件夹是正确的。 框架文件夹是正确的。 对 nant/msbuild 进行了无数次搜索,但这条消息没有产生任何实质性内容。

这些项目都试过了,没能改变结果:

Nant msbuild task with .net 4.0 rc

.NET projects build automation with NAnt/MSBuild + SVN(虽然我正在使用保险柜)

我尝试构建 nant 代码,这样我就可以通过 VS2010 的调试器调试问题,但源项目一团糟,甚至无法开始构建。

欢迎提出想法:)

【问题讨论】:

    标签: msbuild nant


    【解决方案1】:

    我认为关于 Microsoft.VSDesigner 的第一个错误只是一个警告,而不是失败。在我的开发人员箱和构建服务器上,我安装了 VS2005 和 VS2010 Pro,但没有安装 Microsoft.VSDesigner 版本 7。我安装了版本 8 和 9,但没有安装 7。

    看起来“构建”目标在 nant 中运行,然后失败。您正在从 nantcontrib 加载任务,然后尝试启动 msbuild。你是如何开始 msbuild 的?您可以发布启动它的 nant 文件的部分吗?你用的是什么版本的nant?使用 -v 和 -debug+ 标志运行 nant 是否有帮助?

    【讨论】:

    • Daddyman,这是启动 MSBuild 的 nant 代码。我已经尝试过当前的 alpha 以及 .85(以及匹配它们的 nantcontrib)。
    • 我的猜测是配置或平台不正确。删除 /noconlog 和 /v:quiet 参数,看看输出是什么。在我运行的测试中,我得到了相同的通用失败消息。删除这些参数后,我从 msbuild 收到了一条真正的错误消息,解释了问题所在。
    • 谢谢布赖恩。我最终不得不暂时使用 MSBuild,但是当我开始配置单元测试时,我必须回到这个(和 Nant)。感谢我们的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    • 2011-02-27
    • 2011-05-07
    • 1970-01-01
    • 2017-10-31
    • 2012-06-20
    • 1970-01-01
    相关资源
    最近更新 更多