मुझे यह समस्या थी जब मैंने अपने बिल्ड सर्वर को नए रोसलीन कंपाइलर (सी # 6 फीचर्स का उपयोग करने के लिए) का उपयोग करके संकलित करने के लिए अद्यतन किया और required stuff (.NET 4.6 फ्रेमवर्क, माइक्रोसॉफ्ट बिल्ड टूल्स 2015, .NET Framework 4.6 लक्ष्यीकरण को स्थापित करने के बाद) पैक) जब मैंने प्रोजेक्ट ("Package"
एमएसबिल्ड लक्ष्य) प्रकाशित करने का प्रयास किया तो मुझे C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets
गुम होने में त्रुटि मिली।
:
तो मैं /p:VisualStudioVersion=12.0
पैरामीटर MSBuild आदेश कि इतने C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets
से लक्ष्य का प्रकाशन करते लिया जाएगा जोड़ा गया है और फिर मैं प्रश्न में त्रुटि मिली (Web deployment task failed. (Unknown ProviderOption:DefiningProjectFullPath. Known ProviderOptions are:skipInvalid.)
)
मैं इस समस्या के लिए दो समाधान मिल गया
- MSBuild कमांड तर्क से
/p:VisualStudioVersion=12.0
पैरामीटर को हटाने के लिए स्थानीय मशीन से C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets
कॉपी करें और /p:VisualStudioVersion=12.0
पैरामीटर को हटा दें। नया एमएसबिल्ड (C:\Program Files (x86)\MSBuild\14.0\bin\amd64\MSBuild.exe'
पर स्थित) डिफ़ॉल्ट रूप से VisualStudioVersion
14.0
के रूप में सेट करेगा और नए एमएसबिल्ड लक्ष्य का उपयोग करेगा जो नए कंपाइलर के साथ काम करता है।
- यदि आपके पास सर्वर बनाने के लिए उपयोग नहीं है तो MSBuild.Microsoft.VisualStudio.Web NuGet पैकेज स्थापित करें (आपको इसे कम से कम एक प्रोजेक्ट में स्थापित करने की आवश्यकता है) और फिर MSBuild से
/p:VisualStudioVersion=12.0
कमांड तर्क को हटा दें और नीचे टेक्स्ट जोड़ें।परियोजना के csproj फ़ाइल है कि प्रकाशित नहीं किया जा सकता है:
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != '' And Exists('$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets')" />
<Import Project="..\..\packages\MSBuild.Microsoft.VisualStudio.Web.targets.14.0.0\tools\VSToolsPath\WebApplications\Microsoft.WebApplication.targets" Condition="('$(VSToolsPath)' == '' Or !Exists('$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets')) And Exists('..\..\packages\MSBuild.Microsoft.VisualStudio.Web.targets.14.0.0\tools\VSToolsPath\WebApplications\Microsoft.WebApplication.targets')" />
यह पहली जाँच करेगा अगर आप का निर्माण सर्वर पर Microsoft.WebApplication.targets
है (...VisualStudio\v14.0\
निर्देशिका में) और यदि नहीं यह समाधान से एक आयात करेगा (packages
में शामिल निर्देशिका)
यह है कि आप अपने .csproj फ़ाइल में इस अगर जाँच काम नहीं करेंगे:
<PropertyGroup>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
स्रोत
2016-01-28 15:43:29
संबंधित अद्यतन 5 को हल किया है संबंधित: http://stackoverflow.com/questions/21849681/web- तैनाती कार्य-विफल रहा है-इन-वेब तैनाती –