यदि आप अपनी तैनाती प्रक्रिया idempotent रखना चाहते हैं, तो मैं Azure वेब ऐप पर सेट करने के लिए इस परिनियोजन चरण का उपयोग करने का सुझाव दूंगा।
https://marketplace.visualstudio.com/items?itemName=pascalnaber.PascalNaber-Xpirit-WebAppConfiguration
तकनीकी तौर पर इसे रिलीज सेटिंग्स web.config करने के साथ ही कहते हैं, जो एक कोर अनुप्रयोग के लिए आवश्यक नहीं है, लेकिन महत्वपूर्ण बात, यह भी Azure मेजबान के लिए पर्यावरण चर सेट।
बशर्ते आप अपने Startup.cs में वातावरण चर का उपयोग करने के निर्दिष्ट किए हैं:
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables(); //override settings with environment variables
var config = builder.Build();
Configuration = config;
}
तो अगर आप एक रिलीज चर है: appsetting.ASPNETCORE_ENVIRONMENT = रिलीज, आपको लगता है कि $ env मिलेगा: ASPNETCORE_ENVIRONMENT वास्तव में हो जाएगा अगर आप Kudu पर PowerShell कंसोल के माध्यम से जांच रहे हैं तो "रिलीज"।
मैं वास्तव में इस ऐप का उपयोग कर रहा हूं ताकि मैं अपने सभी एप्सेटिंग्स.जेसन वैरिएबल के साथ-साथ एएसपीएनईटीसीओआरओएनआईवीरोनमेंट को कुछ ऐपेटिंग्स को टोकनज़ करने के बजाय रिलीज-टाइम पर ओवरराइड कर सकूं। {Environment} .json फ़ाइल। मैं अपने वीएसटीएस रिलीज वैरिएबल नामों में सही नामकरण सम्मेलन का उपयोग करके पर्यावरण चर के साथ ओवरराइड कर सकता हूं।
उदाहरण के लिए, मेरी appsettings.json इस संरचना है यदि:
{
settings: {
secret: {
foo: "bar"
}
}
}
मैं जैसे एक रिलीज चर के साथ ओवरराइड कर सकते हैं:
appsetting.settings: रहस्य: foo = "बार"
फिर $ env जांचें: सेटिंग्स: गुप्त: तैनाती के बाद Azure वेब ऐप पर foo
मेरे स्रोत में कुछ भी अतिरिक्त किए बिना या एक वेब परिनियोजन पैकेज को उजागर करने, कॉन्फ़िगरेशन फ़ाइल को टोकन करने और फिर msdeploy से पहले पुनः ज़िप करने के बिना, मुझे enviornment-specific configurations मिल गया है।
तो आप इसे "इसे चलाने से पहले" launchSettings.json "फ़ाइल में" ASPNETCORE_ENVIRONMENT "चर के मान को अपडेट करना चाहते हैं? –
हाँ का क्रमबद्ध करें। मैं यह बताने के लिए संघर्ष कर रहा हूं कि मैं क्या करने की कोशिश कर रहा हूं। असल में, जब vsts में एक बिल्ड कार्य (या रिलीज़ कार्य) सेट अप करते हैं, तो मैं उस बिंदु पर ASPNETCORE_ENVIRONMENT चर सेट करना चाहता हूं, इसलिए जब इसे तैनात किया जाता है तो यह अनिवार्य रूप से 'सही' वातावरण होता है। मूल रूप से, जैसे कि web.config काम को बदलता है। क्या इसका कोई मतलब है? –
यह भी पूरी तरह से संभव है कि मैं इसे पूरी तरह गलत तरीके से देख रहा हूं। नीचे दिए गए @set s उत्तर को देखते हुए, मुझे आश्चर्य है कि क्या मुझे पर्यावरण परिवर्तनीय पूर्व-कॉन्फ़िगर किए गए साइट के साथ साइट सेट अप करनी चाहिए, और बस उस पर तैनाती करें। –