【发布时间】:2009-09-07 05:05:19
【问题描述】:
在 64 位构建机器上运行时,我遇到了来自 MSBuild Community Tasks Project 的 Attrib 任务的问题。
我整理了这个小测试项目来说明问题所在:
<Project ToolsVersion="3.5" DefaultTargets="Build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath32)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>
<Target Name="PrintProperties">
<Message Text="MSBuildCommunityTasksPath: $(MSBuildCommunityTasksPath)"/>
<Message Text="MSBuildCommunityTasksLib: $(MSBuildCommunityTasksLib)"/>
<Message Text="MSBuildNodeCount: $(MSBuildNodeCount)"/>
<Message Text="MSBuildExtensionsPath: $(MSBuildExtensionsPath)"/>
<Message Text="MSBuildExtensionsPath32: $(MSBuildExtensionsPath32)"/>
<Message Text="MSBuildProjectDirectoryNoRoot: $(MSBuildProjectDirectoryNoRoot)"/>
<Message Text="MSBuildToolsPath: $(MSBuildToolsPath)"/>
<Message Text="MSBuildToolsVersion: $(MSBuildToolsVersion)"/>
<Message Text="MSBuildBinPath: $(MSBuildBinPath)"/>
<Message Text="MSBuildExtensionsPath: $(MSBuildExtensionsPath)"/>
<Message Text="MSBuildProjectDefaultTargets: $(MSBuildProjectDefaultTargets)"/>
<Message Text="MSBuildProjectDirectory: $(MSBuildProjectDirectory)"/>
<Message Text="MSBuildProjectExtension: $(MSBuildProjectExtension)"/>
<Message Text="MSBuildProjectFile: $(MSBuildProjectFile)"/>
<Message Text="MSBuildProjectFullPath: $(MSBuildProjectFullPath)"/>
<Message Text="MSBuildProjectName: $(MSBuildProjectName)"/>
<Message Text="MSBuildStartupDirectory: $(MSBuildStartupDirectory)"/>
</Target>
<Target Name="TestAttrib" DependsOnTargets="PrintProperties">
<Attrib Files="Test.txt" ReadOnly="false" />
</Target>
</Project>
当我尝试使用 MSBuild 使用 TestAttrib 作为目标构建此项目时,我得到以下结果
C:>msbuild "C:_Source Code\Test.vbproj" /t:TestAttrib Microsoft (R) 构建引擎版本 3.5.30729.1 [Microsoft .NET 框架,版本 2.0.50727.4016] 版权所有 (C) Microsoft Corporation 2007。保留所有权利。
构建于 2009 年 7 月 9 日下午 2:50:12 开始。
节点 0 上的项目“C:_Source Code\Test.vbproj”(TestAttrib 目标)。
MSBuildCommunityTasksLib:C:\Program Files\MSBuild\MSBuildCommunityTasks\MSBu
ild.Community.Tasks.dll
MSBuildNodeCount:1
MSBuildExtensionsPath:C:\Program Files\MSBuild
MSBuildExtensionsPath32:C:\Program Files (x86)\MSBuild
MSBuildProjectDirectoryNoRoot:_源代码
MSBuildToolsPath:c:\Windows\Microsoft.NET\Framework64\v3.5
MSBuildTools 版本:3.5
MSBuildBinPath:c:\Windows\Microsoft.NET\Framework64\v3.5
MSBuildExtensionsPath:C:\Program Files\MSBuild
MSBuildProjectDefaultTargets:构建
MSBuildProjectDirectory: C:_源代码
MSBuildProjectExtension:.vbproj
MSBuildProjectFile:Test.vbproj
MSBuildProjectFullPath: C:_Source Code\Test.vbproj
MSBuildProjectName:测试
MSBuildStartupDirectory: C:\
C:_Source Code\Test.vbproj(26,5):错误 MSB4062:无法从程序集 C:\Program Files\MSBuild\MSBuildCommunityTasks\MSBuild.Community.Tasks 加载“MSBuild.Community.Tasks.Attrib”任务.dll。无法加载文件或程序集“file:///C:\Program Files\MSBuild\MSBuildCommunityTasks\MSBuild.Community.Tasks.dll”或其依赖项之一。该系统找不到指定的文件。确认声明正确,并且程序集及其所有依赖项都可用。
已完成构建项目“C:_Source Code\Test.vbproj”(TestAttrib 目标)——失败。
构建失败。
"C:_Source Code\Test.vbproj" (TestAttrib target) (1) ->(TestAttrib target) -> C:_Source Code\Test.vbproj(26,5): error MSB4062: The "MSBuild.Community .Tasks.Attrib" 任务无法从程序集 C:\Program Files\MSBuild\MSBuildCommunityTasks\MSBuild.Community.Tasks.dll 加载。无法加载文件或程序集“file:///C:\Program Files\MSBuild\MSBuildCommunityTasks\MSBuild.Community.Tasks.dll”或其依赖项之一。该系统找不到指定的文件。确认声明正确,并且程序集及其所有依赖项均可用。
0 Warning(s)
1 Error(s)
经过时间 00:00:00.05
当我使用 (MSBuildExtensionsPath32) 变量显式导入任务时,为什么 MSBuild 会在 C:\Program Files\MSBuild\MSBuildCommunityTasks\MSBuild.Community.Tasks.dll 中搜索 Attrib 任务?
【问题讨论】:
标签: msbuild 64-bit msbuildcommunitytasks