एचकेएमएल के तहत एक रजिस्ट्री कुंजी है जिसमें लोड करने के लिए ड्राइवरों की अल्पविराम से अलग सूची है।
एचकेएलएम कहीं "इंस्टॉल किए गए ड्राइवर" "फू, बार"
हमारे ड्राइवर को स्थापित करते समय, हमें इस सूची में एक प्रविष्टि जोड़ने की आवश्यकता होती है ताकि यह बन जाए
एचकेएलएम कहीं "इंस्टॉल किए गए ड्राइवर" "फू, बार, बाज़"
और अनइंस्टॉल करने पर हमें अपनी प्रविष्टि को सूची से दूर खींचने की जरूरत है, यानी एक s/,baz// करें ताकि यह अपनी मूल स्थिति में वापस आ जाए
एचकेएलएम कहीं "इंस्टॉल किए गए ड्राइवर" "फू, बार"
मैं केवल इंस्टॉल पर कुंजी को स्टोर नहीं कर सकता और इसे अनइंस्टॉल करने पर हटा सकता हूं, क्योंकि यदि अन्य ड्राइवर इंस्टॉल हो जाते हैं, तो कुंजी "फू, बार, बाज़, ब्रावो" हो सकती है - इसलिए यह हमारे बाद "फू, बार, ब्रावो" बन जाना चाहिए ड्राइवर अनइंस्टॉल हो जाता है।
ओह और अगर बाज पहले से ही सूची में है, तो इसे दोबारा नहीं जोड़ा जाना चाहिए।
मैं इस तरह की चाबियों में हेरफेर करने के लिए वाईएक्स को पृथ्वी पर कैसे लड़ूं?
2 जवाब
बेहतर तरीके हो सकते हैं, लेकिन C# का उपयोग करके आप ऐसा कुछ कर सकते हैं।
यहाँ एक C# 2019 नमूना है:
using System;
using System.Collections.Generic;
using System.Linq;
namespace CommaSeparatedEditing
{
class Program
{
static void Main(string[] args)
{
var list = "foo, bar, baz, stack, overflow, server, fault,endingentry";
List<String> Items = list.Split(',').Select(i => i.Trim()).Where(i => i != string.Empty).ToList(); // Split them all and remove spaces
Items.Remove("fault"); // Remove any value you want
Items.Add("My New Entry"); // Add a new entry
string modifiedlist = String.Join(", ", Items.ToArray());
Console.WriteLine(modifiedlist);
Console.ReadLine(); // keep console open to show result
}
}
}
ऊपर लिखी गई सूची / जेनेरिक संग्रह का उपयोग करता है < से a href="https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic?view=dotnet-plat-ext-5.0" rel="nofollow noreferrer">System.Collections.Generic
नाम स्थान। अधिक हल्के वजन वाले स्ट्रिंग सरणियों, रेगेक्स का उपयोग करके कई अन्य दृष्टिकोण हैं और एक विशिष्ट प्रविष्टि की खोज करने वाले आदेशों को प्रतिस्थापित करते हैं और इसे रिक्त स्थान से प्रतिस्थापित करते हैं: ""।
कुछ वैकल्पिक तरीकों के कुछ नमूना स्निपेट यहां दिए गए हैं: मैं एक स्ट्रिंग से अल्पविराम से अलग किए गए विशिष्ट मान को कैसे निकालूं? (पृष्ठ को नीचे स्क्रॉल करें)।
यहाँ C# आस्थगित मोड कस्टम क्रियाओं का एक WiX नमूना है: https://www.github.com/glytzhkof /WiXDeferredModeSample
एमएसआई/वाईएक्स केवल मल्टीस्ट्रिंग रजिस्ट्री मानों को जोड़ने/प्रीपेन्ड करने का समर्थन करता है। आप जो वर्णन करते हैं वह अल्पविराम सीमित स्ट्रिंग है।
किसी प्रॉपर्टी में मौजूदा मान को पढ़ने के लिए आपको AppSearch का उपयोग करना होगा। संपत्ति को अपनी इच्छानुसार प्रारूपित करने के लिए एक कस्टम क्रिया का उपयोग करें और फिर रजिस्ट्री मान को वापस लिखने के लिए वाईएक्स का उपयोग करें।
संबंधित सवाल
नए सवाल
wix
वाईएक्स टूलसेट (जिसे पहले विंडोज इंस्टॉलर एक्सएमएल के नाम से जाना जाता था) एक टूलसेट है जो एक्सएमएल सोर्स कोड से विंडोज इंस्टॉलेशन पैकेज और वाईएक्स बूटस्ट्रैपर्स बनाता है। टूलसेट एक कमांड लाइन वातावरण का समर्थन करता है जो डेवलपर्स MSI और MSM सेटअप पैकेज और EXE बूटस्ट्रैपर्स बनाने के लिए अपनी निर्माण प्रक्रियाओं में एकीकृत कर सकते हैं। क्लाउड-आधारित वेब डेवलपमेंट प्लेटफ़ॉर्म के लिए, [wixcode] टैग का उपयोग करें।