खराब कर दिया है, मैं एमएसवीएस 11 बीटा स्थापित करने के बाद अपने एमएसवीएस 10 के साथ संकलन समस्याओं में भाग गया। अब, जब मैं MSVS 10 में मेरी सी # परियोजनाओं संकलन (MSVS 10 में बनाया परियोजनाओं, लक्ष्य ढांचा: 3.5), मैं त्रुटियों MSB4216
, MSB4028
मिल उत्पादन विंडो में पाठ निम्नलिखित के साथ:ऐसा लगता है कि एमएसवीएस 11.0 बीटा ने एमएसवीएस 10.0 इंस्टॉलेशन
1>Task "GenerateResource" skipped, due to false condition; ('%(EmbeddedResource.Type)' == 'Resx' and '%(EmbeddedResource.GenerateResource)' != 'false' and '$(GenerateResourceMSBuildRuntime)' != 'CLR2') was evaluated as ('Resx' == 'Resx' and '' != 'false' and 'CLR2' != 'CLR2').
1>Task "GenerateResource"
1> Launching task "GenerateResource" from assembly "Microsoft.Build.Tasks.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" in an external task host with a runtime of "CLR2" and a process architecture of "x86".
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2199,5): error MSB4216: Could not run the "GenerateResource" task because we could not create or connect to a task host with runtime "CLR2" and architecture "x86". Please ensure that (1) the requested runtime and/or architecture are available on the machine, and (2) that the required executable "C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NetFX 4.0 Tools\MSBuildTaskHost.exe" exists.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2217,7): error MSB4028: The "GenerateResource" task's outputs could not be retrieved from the "FilesWritten" parameter. Object does not match target type.
1>Done executing task "GenerateResource" -- FAILED.
मैं इन त्रुटियों को कैसे ठीक कर सकता ?
संपादित करें:
- उल्लेख फ़ाइल "C: \ प्रोग्राम फ़ाइलें (x86) \ माइक्रोसॉफ्ट SDKs \ Windows \ v8.0A \ बिन \ NetFX 4.0 उपकरण \ MSBuildTaskHost.exe" मौजूद है।
- सी ++ परियोजनाएं बिना किसी समस्या के शिकायत कर रही हैं।
- वीएस 10 को पुनर्स्थापित करने से समस्या हल नहीं होती है।
- यह
GenerateResource
कार्य, कि resx फ़ाइल संकलन चाहिए, लेकिन कोई अपवाद उत्पन्न करता है:
<!-- But we can't use those parameters if we're targeting 3.5, since we're using the 3.5 task -->
<GenerateResource
Sources="@(EmbeddedResource)"
UseSourcePath="$(UseSourcePath)"
References="@(ReferencePath)"
AdditionalInputs="$(MSBuildAllProjects)"
NeverLockTypeAssemblies="$(GenerateResourceNeverLockTypeAssemblies)"
StateFile="$(IntermediateOutputPath)$(MSBuildProjectFile).GenerateResource.Cache"
StronglyTypedClassName="%(EmbeddedResource.StronglyTypedClassName)"
StronglyTypedFileName="%(EmbeddedResource.StronglyTypedFileName)"
StronglyTypedLanguage="%(EmbeddedResource.StronglyTypedLanguage)"
StronglyTypedNamespace="%(EmbeddedResource.StronglyTypedNamespace)"
StronglyTypedManifestPrefix="%(EmbeddedResource.StronglyTypedManifestPrefix)"
PublicClass="%(EmbeddedResource.PublicClass)"
OutputResources="@(EmbeddedResource->'$(IntermediateOutputPath)%(ManifestResourceName).resources')"
MSBuildRuntime="$(GenerateResourceMSBuildRuntime)"
MSBuildArchitecture="$(GenerateResourceMSBuildArchitecture)"
Condition="'%(EmbeddedResource.Type)' == 'Resx' and '%(EmbeddedResource.GenerateResource)' != 'false' and '$(GenerateResourceMSBuildRuntime)' == 'CLR2'">
- मैं debug MSBuild लिपि (
.csproj
) की कोशिश की। घातकGenerateResource
कार्य से पहले मैंने सभी गुण और आइटम की जांच की। "8.0 ए" के बारे में कुछ भी नहीं था, लेकिन केवल "7.0 ए"
क्या आपने जांच की है कि आवश्यक फ़ाइल त्रुटि के अनुसार मौजूद है? "कृपया सुनिश्चित करें कि (1) अनुरोधित रनटाइम और/या आर्किटेक्चर मशीन पर उपलब्ध हैं, और (2) कि आवश्यक निष्पादन योग्य" सी: \ प्रोग्राम फ़ाइलें (x86) \ Microsoft SDKs \ Windows \ v8.0A \ bin \ NetFX 4.0 उपकरण \ MSBuildTaskHost.exe "मौजूद है।" – Chris
@Chris - हाँ यह फ़ाइल मौजूद है, और मैं procmon लॉग में देख सकता हूं, वह ऐप "सी: \ प्रोग्राम फ़ाइलें (x86) \ माइक्रोसॉफ्ट एसडीके \ विंडोज \ v8.0A \ bin \ NetFX 4.0 टूल्स \ MSBuildTaskHost.exe" शुरू हुआ और कुछ कार्य कर रहा था। – Loom
यह एक पथ मुद्दा हो सकता है। वीएस 11 ने एक पथ स्थापित किया है जो आपके निर्माण स्क्रिप्ट को मानने वाले पथ को ओवरराइड कर रहा है और फ़ाइलों या डीएल के गलत संस्करण का उपयोग कर रहा है। अपने पथ की जांच करें। –