MSBuild.Community.Aufgaben.Attrib auf x64-Maschine versagt
Ich habe ein Problem mit dem Attrib-Aufgabe aus der MSBuild Community Tasks-Projekt bei der Ausführung auf einem 64-bit-build-Maschine.
Habe ich zusammen in diesem kleinen test-Projekt, um zu zeigen, was das problem ist:
<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>
wenn ich versuche zu bauen, dieses Projekt mit MSBuild verwenden TestAttrib als Ziel bekomme ich folgende Ergebnisse
C:>msbuild "C:_Source-Code\Test.vbproj" /t:TestAttrib
Microsoft (R) Build-Engine-Version 3.5.30729.1
[Microsoft .NET Framework, Version 2.0.50727.4016]
Copyright (C) Microsoft Corporation, 2007. Alle Rechte vorbehalten.
Bauen begonnen 7/09/2009 2:50:12 Uhr.
Projekt "C:_Source-Code\Test.vbproj" auf Knoten 0 (TestAttrib target(s)).
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: _Source-Code
MSBuildToolsPath: c:\Windows\Microsoft.NET\Framework64\v3.5
MSBuildToolsVersion: 3.5
MSBuildBinPath: c:\Windows\Microsoft.NET\Framework64\v3.5
MSBuildExtensionsPath: C:\Program Files\MSBuild
MSBuildProjectDefaultTargets: Bauen
MSBuildProjectDirectory: C:_Source-Code
MSBuildProjectExtension: .vbproj
MSBuildProjectFile: Test.vbproj
MSBuildProjectFullPath: C:_Source-Code\Test.vbproj
MSBuildProjectName: Test
MSBuildStartupDirectory: C:\
C:_Source-Code\Test.vbproj(26,5): Fehler MSB4062: Die "MSBuild.Community.Aufgaben.Attrib" Aufgabe konnte nicht geladen werden, aus der Versammlung C:\Program Files\MSBuild\MSBuildCommunityTasks\MSBuild.Community.Tasks.dll. Konnte nicht geladen, Datei oder assembly "file:///C:\Program Files\MSBuild\MSBuildCommunityTasks\MSBuild.Community.Tasks.dll' oder eine Ihrer Abhängigkeiten. Das system kann nicht die angegebene Datei gefunden werden. Bestätigen Sie, dass die Deklaration korrekt ist, und dass die assembly und alle Ihre Abhängigkeiten verfügbar sind.
Fertig Projekt "C:_Source-Code\Test.vbproj" (TestAttrib target(s)) -- FEHLER.
Build FAILED.
"C:_Source-Code\Test.vbproj" (TestAttrib target) (1) ->(TestAttrib Ziel) -> C:_Source-Code\Test.vbproj(26,5): Fehler MSB4062: Die "MSBuild.Community.Aufgaben.Attrib" Aufgabe konnte nicht geladen werden, aus der Versammlung C:\Program Files\MSBuild\MSBuildCommunityTasks\MSBuild.Community.Tasks.dll. Konnte nicht geladen, Datei oder assembly "file:///C:\Program Files\MSBuild\MSBuildCommunityTasks\MSBuild.Community.Tasks.dll' oder eine Ihrer Abhängigkeiten. Das system kann nicht die angegebene Datei gefunden werden. Bestätigen Sie, dass die Deklaration korrekt ist, und dass die assembly und alle Ihre Abhängigkeiten verfügbar sind.
0 Warning(s)
1 Error(s)
Verstrichene Zeit 00:00:00.05
Warum ist das MSBuild suchen für Sie den Attrib-Aufgabe in C:\Program Files\MSBuild\MSBuildCommunityTasks\MSBuild.Community.Tasks.dll wenn ich explizit importiert die Aufgaben, die mit der (MSBuildExtensionsPath32) variable?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich anscheinend das Problem durch Bearbeiten der Zeile 6 der "C:\Program Files (x86)\MSBuild\MSBuildCommunityTasks\MSBuild.Community.Aufgaben.Ziele"
Ursprünglich war es:
und ich geändert es zu:
beachten Sie die änderung von $(MSBuildExtensionsPath) zu $(MSBuildExtensionsPath32)
Während dies scheint sich geklärt haben mein Problem jetzt, ich bin nicht sicher, warum ich hatte zu Bearbeiten, die MSBuild.Community.Aufgaben.Ziele-Datei in den ersten Platz - ich nahm an, der installer hätte Sie sicher, dass die Datei korrekt war. So, vielleicht Bearbeiten Sie die MSBuild.Community.Aufgaben.Targets-Datei ist nicht die beste Idee in der Welt, also seien Sie vorsichtig, wenn Sie sich entscheiden, Folgen Sie meiner Führung.
Dies ist natürlich viel zu spät eine Antwort, aber ich dachte, ich würde in diesem Fall jemand anderes mit diesem problem. Anstelle der Bearbeitung der MSBuild.Community.Aufgaben.Ziele-Datei, können Sie einfach definieren Sie die MSBuildCommunityTasksPath Eigenschaft in eine Eigenschaft Gruppe, die in Ihren build-Datei. Ich habe zum Beispiel etwas wie dieser an der Spitze von meinem build-script:
Ich habe dann speichern Sie die MSBuildCommunityTasks Ordner im tools-Verzeichnis in der Quellcodeverwaltung. Es bedeutet, dass andere Leute ziehen aus der Quelle, und bauen Sie es sofort, ohne irgendetwas installieren zu müssen.
Cheers,
Adam
Dies ist sehr veraltet helfen. Die ms build-Prozess hat sich geändert, seit dieses ticket, am besten, Folgen den Anweisungen hier https://github.com/loresoft/msbuildtasks
Für mein Projekt habe ich einen Ordner in meine Lösung und die Lösung, die ich erstellen Sie eine MSBuildTasks Ordner wo kopiere ich die letzen MBBuild.Community.Task Dateien in der Zip-Datei release. und fügen Sie die folgenden Zeilen in meine msbuild-Datei