2016-11-20 4 views
21

पर नहीं मिल सका नीला करने के लिए ASP.NET कोर ऐप का परिनियोजन और साइट खोलने के बाद, मैं निम्नलिखित त्रुटि मिलती है:InvalidOperationException: 'UserSecretsIdAttribute' विधानसभा

InvalidOperationException: Could not find 'UserSecretsIdAttribute' on assembly '******, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.

अपवाद विवरण भी शामिल है कि त्रुटि में क्या होता है कोड की इस पंक्ति पर Startup.cs:

builder.AddUserSecrets();

धन्यवाद

उत्तर

31

वहाँ उपयोगकर्ता रहस्य मॉड्यूल के लिए एक अद्यतन अभी हाल ही में किया गया था। संस्करण 1.0.1 और बाद वाले वर्शन अब आपको उपयोगकर्ता रहस्यों की आईडी के लिए असेंबली-स्तरीय विशेषता निर्दिष्ट करना है, या फ़ॉलबैक के रूप में, जिस तरह से यह प्रोजेक्ट.जेसन में था। https://github.com/aspnet/Announcements/issues/209

आप इस तरह .csproj में रहस्य आईडी परिभाषित कर सकते हैं:

<PropertyGroup> 
    <UserSecretsId>aspnet-TestApp-ce345b64-19cf-4972-b34f-d16f2e7976ed</UserSecretsId> 
</PropertyGroup> 

यह निम्न विधानसभा स्तरीय विशेषता उत्पन्न

यहाँ GitHub पर घोषणा है। वैकल्पिक रूप से, इसे .csproj फ़ाइल में जोड़ने के बजाय, आप निश्चित रूप से इसे स्वयं जोड़ सकते हैं उदा। Startup.cs रहे हैं:

[assembly: UserSecretsId("aspnet-TestApp-ce345b64-19cf-4972-b34f-d16f2e7976ed")] 

इसके अलावा, आप का उपयोग करना चाहिए:

builder.AddUserSecrets<Startup>(); 

यह दिए गए प्रकार का विधानसभा में उस विशेषता के लिए खोज करेंगे इस मामले मैं स्टार्टअप वर्ग का उपयोग किया गया।

नोट: इस 2.0 में हटा दिया जाएगा: (1.0.2 और 1.1.1 यह अप्रचलित में चिह्नित किया है)

builder.AddUserSecrets(); 

मैं उपयोगकर्ता रहस्य विन्यास के लिए source code जाँच की, और बिना AddUserSecrets() बुला प्रकार करता है:

var attribute = entryAssembly.GetCustomAttribute<UserSecretsIdAttribute>(); 
if (attribute != null) 
{ 
    return AddUserSecrets(configuration, attribute.UserSecretsId); 
} 

// try fallback to project.json for legacy support 
try 
{ 
    var fileProvider = configuration.GetFileProvider(); 
    return AddSecretsFile(configuration, PathHelper.GetSecretsPath(fileProvider)); 
} 
catch 
{ } 

// Show the error about missing UserSecretIdAttribute instead an error about missing 
// project.json as PJ is going away. 
throw MissingAttributeException(entryAssembly); 

यह अपने विधानसभा पर UserSecretsId विशेषता ढूंढने के लिए कि असफल रहने, अगर यह project.json में मिल सकता जाँच कोशिश कर रहा है, और। फिर (जैसा कि टिप्पणी की गई है) गायब विशेषता के बारे में एक त्रुटि देता है क्योंकि वे प्रोजेक्ट.जेसन के बारे में शिकायत नहीं करना चाहते हैं क्योंकि इसे बहिष्कृत किया जा रहा है।

+0

इसके अलावा, यदि आपके पास 'UserSecretsId' प्रॉपर्टी' वाली प्रोजेक्ट में 'Microsoft.Extensions.Configuration.UserScrets' निर्भरता नहीं है, तो विशेषता नहीं बनाई जाएगी। –

+0

यदि आपके पास उस निर्भरता नहीं है, तो मुझे नहीं लगता कि आप उपयोगकर्ता रहस्यों का उपयोग कर सकते हैं। – juunas

+0

मैं संक्रमित रूप से ("आधार" परियोजना के माध्यम से एक समाधान में कई परियोजनाओं के बीच बॉयलरप्लेट साझा कर रहा था) पर निर्भर था।जब मैं इसे तेजी से उपयोग कर रहा था, असेंबली विशेषता गायब थी, लेकिन जब मैंने निर्भरता सीधे जोड़ दी, तो त्रुटि दूर हो गई। –

2

मैं अपनी स्थिति में उन लोगों के लिए answer में जोड़ना चाहता हूं।

मैं एक .NET कोर कंसोल ऐप लिख रहा हूं, रहस्य प्रबंधक का उपयोग करने की कोशिश कर रहा हूं (सुनिश्चित नहीं है कि यह कंसोल ऐप्स के लिए है)। एकमात्र तरीका मैं स्वयं को त्रुटि से छुटकारा पाने में सक्षम था, असेंबली स्तर पर असेंबली स्तर विशेषता का उपयोग कर रहा था जहां मैं रहस्य प्रबंधक का उपयोग कर रहा था।

जैसा कि मैंने कहा, मुझे यकीन नहीं है कि रहस्य प्रबंधक कंसोल ऐप्स के लिए है या नहीं। तो शायद .xproj फ़ाइलों बनाम .csproj फ़ाइलों के साथ एक मुद्दा है।

+0

क्या आपने 'userSecretsId' को' project.json' में जोड़ने का प्रयास किया है? – Alex78191

+0

@ Alex78191 मुझे पहले से ही प्रोजेक्ट में था। जेसन यह त्रुटि तब हुई जब मैंने कई परियोजनाओं में माइग्रेट करने की कोशिश की। मैं वीएस कोड का उपयोग कर रहा हूँ –

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