2009-09-07 13 views
9

मुझे 64 बिट बिल्ड मशीन पर चलते समय MSBuild Community Tasks Project से अट्रिब कार्य के साथ कोई समस्या हो रही है।MSBuild.Community.Tasks.Attrib x64 मशीन पर असफल

मैं एक साथ रख दिया यह छोटी परीक्षण परियोजना समस्या क्या है दिखाने के लिए:

<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> 

जब मैं TestAttrib लक्ष्य के रूप में प्रयोग MSBuild के साथ इस परियोजना का निर्माण करने का प्रयास मैं निम्नलिखित परिणाम प्राप्त

सी:> एमएसबिल्ड "सी: _Source कोड \ Test.vbproj"/t: TestAttrib माइक्रोसॉफ्ट (आर) बिल्ड इंजन संस्करण 3.5.30729.1 [माइक्रोसॉफ्ट .NET फ्रेमवर्क, संस्करण 2.0.50727.4016] कॉपीराइट (सी) माइक्रोसॉफ्ट कॉर्पोरेशन 2007। सर्वाधिकार सुरक्षित।

बिल्ड 7/09/2009 2:50:12 अपराह्न को शुरू किया गया।
परियोजना "सी: _Source कोड \ Test.vbproj" नोड 0 (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: _Source कोड
MSBuildToolsPath: सी: \ Windows \ Microsoft.NET \ Framework64 \ v3.5
MSBuildToolsVersion: 3.5
MSBuildBinPath: सी: \ Windows \ Microsoft.NET \ Framework64 \ v3.5
एमएसबीइल dExtensionsPath: C: \ Program Files \ MSBuild
MSBuildProjectDefaultTargets: निर्माण
MSBuildProjectDirectory: C: _Source कोड
MSBuildProjectExtension: .vbproj
MSBuildProjectFile: Test.vbproj
MSBuildProjectFullPath: C: _Source कोड \ Test.vbproj
MSBuildProjectName : टेस्ट
एमएसबील्ड स्टार्टअप डायरेक्टरी: सी: \
सी: _Source कोड \ Test.vbproj (26,5): त्रुटि MSB4062: "MSBuild.Community.Tasks.Attrib" कार्य असेंबली C: \ Program से लोड नहीं किया जा सका Files \ MSBuild \ MSBuildCommunityTasks \ MSBuild.Community.Tasks.dll। फ़ाइल या असेंबली फ़ाइल लोड नहीं हो सका: /// सी: \ प्रोग्राम फ़ाइलें \ MSBuild \ MSBuildCommunityTasks \ MSBuild.Community.Tasks.dll 'या इसकी निर्भरताओं में से एक। सिस्टम निर्दिष्ट फाइल का पता लगाने में नाकामयाब रहा। पुष्टि करें कि घोषणा सही है, और विधानसभा और इसकी सभी निर्भरताएं उपलब्ध हैं। हो गया बिल्डिंग प्रोजेक्ट "सी: _Source कोड \ Test.vbproj" (टेस्टएट्रिब लक्ष्य (ओं)) - विफल।

FAILED बनाएं।

"सी: _Source कोड \ Test.vbproj" (टेस्टएट्रिब लक्ष्य) (1) -> (टेस्टएट्रिब लक्ष्य) -> सी: _Source कोड \ Test.vbproj (26,5): त्रुटि एमएसबी 4062: "एमएसबिल्ड। Community.Tasks.Attrib "कार्य असेंबली सी: \ प्रोग्राम फ़ाइलें \ MSBuild \ MSBuildCommunityTasks \ MSBuild.Community.Tasks.dll से लोड नहीं किया जा सका। फ़ाइल या असेंबली फ़ाइल लोड नहीं हो सका: /// सी: \ प्रोग्राम फ़ाइलें \ MSBuild \ MSBuildCommunityTasks \ MSBuild.Community.Tasks.dll 'या इसकी निर्भरताओं में से एक। सिस्टम निर्दिष्ट फाइल का पता लगाने में नाकामयाब रहा। पुष्टि करें कि घोषणा सही है, और विधानसभा और इसकी सभी निर्भरताएं उपलब्ध हैं।

0 Warning(s) 
1 Error(s) 

समय बीत गया 00:00:00।05

एमएसबिल्ड सी: \ प्रोग्राम फ़ाइलें \ MSBuild \ MSBuildCommunityTasks \ MSBuild.Community.Tasks.dll में अट्रिब कार्य की खोज क्यों कर रहा है जब मैंने स्पष्ट रूप से (MSBuildExtensionsPath32) चर का उपयोग करके कार्यों को आयात किया है?
मूल रूप से यह किया गया था:

उत्तर

7

मैं "\ Program Files (x86) \ MSBuild \ MSBuildCommunityTasks \ MSBuild.Community.Tasks.Targets सी": के संपादन लाइन 6 से समस्या का समाधान हो गए हैं लगता है

<MSBuildCommunityTasksPath Condition="'$(MSBuildCommunityTasksPath)' == ''">$(MSBuildExtensionsPath)\MSBuildCommunityTasks</MSBuildCommunityTasksPath> 

और मैं करने के लिए इसे बदल दिया: (MSBuildExtensionsPath32)

$ करने के लिए (MSBuildExtensionsPath) $ के परिवर्तन

<MSBuildCommunityTasksPath Condition="'$(MSBuildCommunityTasksPath)' == ''">$(MSBuildExtensionsPath32)\MSBuildCommunityTasks</MSBuildCommunityTasksPath> 

टिप्पणी हालांकि इस se ईएमएस ने अभी तक अपनी समस्या हल कर दी है, मुझे यकीन नहीं है कि मुझे MSBuild.Community.Tasks.Targets फ़ाइल को पहली जगह क्यों संपादित करना था - मुझे लगता है कि इंस्टॉलर यह सुनिश्चित कर लेगा कि फ़ाइल सही थी। तो शायद MSBuild.Community.Tasks.Targets फ़ाइल को संपादित करना दुनिया में सबसे अच्छा विचार नहीं है, इसलिए सावधान रहें यदि आप मेरे नेतृत्व का पालन करने का निर्णय लेते हैं।

+1

ठीक उसी समस्या थी, धन्यवाद! – PatrickJ

5

यह स्पष्ट रूप से बहुत देर से एक उत्तर है, लेकिन मैंने सोचा कि अगर किसी और को यह समस्या हो तो मैं इसमें शामिल करूंगा। MSBuild.Community.Tasks.Targets फ़ाइल को संपादित करने के बजाय, आप बस अपनी बिल्ड फ़ाइल में किसी संपत्ति समूह में MSBuildCommunityTasksPath प्रॉपर्टी को परिभाषित कर सकते हैं। उदाहरण के लिए, मैं अपने निर्माण स्क्रिप्ट के शीर्ष पर कुछ इस तरह है:

<PropertyGroup> 
    <ToolsDirectory>$(MSBuildProjectDirectory)\tools</ToolsDirectory> 
    <MSBuildCommunityTasksPath>$(ToolsDirectory)\MSBuildCommunityTasks</MSBuildCommunityTasksPath> 
</PropertyGroup> 

मैं तो स्रोत नियंत्रण में एक उपकरण निर्देशिका में MSBuildCommunityTasks फ़ोल्डर की दुकान। इसका मतलब है कि अन्य लोक स्रोत को खींच सकते हैं और कुछ भी इंस्टॉल किए बिना इसे सीधे बना सकते हैं।

चीयर्स, एडम

संबंधित मुद्दे