2015-12-25 12 views
14

जब मैं अपने समाधान का निर्माण करने की कोशिश, मैं निम्न त्रुटि संदेश मिलता है:बिल्ड त्रुटि, इस परियोजना का संदर्भ NuGet

गंभीरता कोड विवरण परियोजना फ़ाइल लाइन दमन राज्य त्रुटि इस परियोजना का संदर्भ NuGet पैकेज (रों) कि इस कंप्यूटर पर पर अनुपलब्ध हैं। उन्हें डाउनलोड करने के लिए NuGet पैकेज पुनर्स्थापना का उपयोग करें। जानकारी के लिए, http://go.microsoft.com/fwlink/?LinkID=322105 देखें। अनुपलब्ध फ़ाइल है .. \ packages \ Microsoft.Net.Compilers.1.1.1 \ build \ Microsoft.Net.Compilers.props। MusicKarma C: \ Users \ ब्रायन \ दस्तावेज़ \ दृश्य स्टूडियो 2015 \ परियोजनाओं \ MusicKarma \ MusicKarma.csproj 268

जब मैं अपने संकुल फ़ोल्डर में देखो, मुझे लगता है मैं नामित Microsoft.Net.Compilers.props फ़ाइल पा सकते हैं

मैंने Nuget Restore का उपयोग करने का प्रयास किया है, लेकिन यह कहता रहता है कि मेरे पास सभी पैकेज हैं। कोई भी जो मेरी मदद कर सकता है?

ऐसा तब होता है जब मैं इस परियोजना को टीएफएस से अपने कंप्यूटरों में से एक में ले जाता हूं।

उत्तर

15

सबसे पहले मैं यह जांचूंगा कि आपके संगीतकर्मा प्रोजेक्ट में Microsoft.Net.Compilers है, इसकी पैकेज.config फ़ाइल में। यदि नहीं तो आप अपने MusicKarma.csproj से उस NuGet पैकेज के साथ सब कुछ करने के लिए हटा सकते हैं।

यदि आप Microsoft.Net.Compilers NuGet पैकेज का उपयोग कर रहे हैं तो मेरा अनुमान है कि पथ गलत है। त्रुटि संदेश में निर्देशिका नाम को देखते हुए मुझे लगता है कि MusicKarma समाधान फ़ाइल (.sln) MusicKarma.csproj के समान निर्देशिका में है। यदि ऐसा है तो पैकेज निर्देशिका शायद डिफ़ॉल्ट रूप से गलत है क्योंकि संकुल निर्देशिका समाधान निर्देशिका के अंदर होगी। इसलिए मैं यह सोचते हैं कि अपने संकुल निर्देशिका है:

C:\Users\Bryan\Documents\Visual Studio 2015\Projects\packages\Microsoft.Net.Compilers.1.1.1\build 

तो यदि यह मामला है तो आप समस्या को ठीक कर सकते हैं:

C:\Users\Bryan\Documents\Visual Studio 2015\Projects\MusicKarma\packages 

जबकि अपने MusicKarma.csproj फ़ाइल रंगमंच की सामग्री की तलाश में है में दायर अपने MusicKarma.csproj फ़ाइल में पथ को संपादित करके या NuGet पैकेज को पुनर्स्थापित करके।

18

यह समस्या तब मेरे लिए दिखाई दी जब मैं फाइल सिस्टम में फ़ोल्डर्स बना रहा था (मेरे समाधान में नहीं) और कुछ परियोजनाओं को स्थानांतरित कर दिया।

यह पता चला है कि पैकेज पथ csproj फ़ाइलों से संबंधित हैं। तो मैं अपने संदर्भ के "HintPath" बदलना पड़ा:

<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> 
     <HintPath>..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll</HintPath> 
     <Private>True</Private> 
</Reference> 

करने के लिए:

<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> 
     <HintPath>..\..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll</HintPath> 
     <Private>True</Private> 
</Reference> 

सूचना डबल ".. \" 'HintPath' में।

<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.1.1\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.1.1.1\build\Microsoft.Net.Compilers.props'))" /> 

करने के लिए::

<Error Condition="!Exists('..\..\packages\Microsoft.Net.Compilers.1.1.1\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Net.Compilers.1.1.1\build\Microsoft.Net.Compilers.props'))" /> 

फिर, डबल नोटिस ".. \"

मैं भी उदाहरण के लिए मैं बदलना पड़ा मेरी त्रुटि की स्थिति बदलना पड़ा।

+0

धन्यवाद, आप मेरा दिन :) – katmanco

+0

धन्यवाद बचाया, तुम मुझे बहुत मदद की, सावधान हो संकुल फ़ोल्डर के पथ के साथ –

1

मैं भी मैं .csproj फ़ाइल से कोड के इस भाग लिया इस त्रुटि था: अमूल्य जवाब के लिए

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> 
     <PropertyGroup> 
     <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> 
     </PropertyGroup> 
     <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" /> 
    </Target> 
+1

आपका क्या मतलब है: * मैंने .csproj फ़ाइल * का यह हिस्सा लिया है? क्या आपने इसे हटा दिया? –

+0

नहीं, बस कोड के उस भाग को हटाएं। यदि आप नोटपैड के साथ फ़ाइल .csproj खोलते हैं, तो टैर्गूएट कोड हटाएं, सहेजें, और मानक खोलें –

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