का उपयोग कर .NET DLL को कैसे पंजीकृत करें मैंने कंप्यूटर की हार्डवेयर जानकारी (उदा। एचडीडी/एसएसडी) पढ़ने के लिए विजुअल स्टूडियो 2010 सी # का उपयोग करके कक्षा पुस्तकालय लिखा है। मैं लक्ष्य कंप्यूटर की हार्डवेयर जानकारी पढ़ने के लिए InnoSetup का उपयोग कर इंस्टॉलर बनाने के लिए इस डीएल का उपयोग करूंगा। अब मेरी समस्याएं हैं .NET dll का उपयोग सीधे तब तक नहीं किया जा सकता जब तक कि यह पहले से पंजीकृत नहीं है। मैं InnoSetup में InitializeSetup के दौरान dll को पंजीकृत करने का कोई तरीका ढूंढने का प्रयास कर रहा हूं, इसलिए मैं डीएलएल में फ़ंक्शंस का उपयोग कर सकता हूं। यहां इंस्टॉलर के लिए मैंने लिखा स्क्रिप्ट है।इनो सेटअप
function InitializeSetup(): Boolean;
var
obj: Variant;
diskPartitions: Integer;
va: String;
ErrorCode: Integer;
b: Boolean;
begin
ExtractTemporaryFile('SSHardwareChecker.dll');
RegisterServer(False, ExpandConstant('{tmp}\SSHardwareChecker.dll'), False);
obj := CreateOleObject('SSHardwareChecker.SSClass');
va := obj.GetDiskDriveInformation;
MsgBox(va, mbInformation, mb_Ok);
b:=UnregisterServer(False, ExpandConstant('{tmp}\SSHardwareChecker.dll'), False);
end;
समारोह RegisterServer
work.It प्रतीत नहीं होता है एक त्रुटि जो RegSvr32 failed with exit code 0x4
कहते हैं फेंकता है। मैंने नेट में बहुत से लेख पढ़े हैं जो कहते हैं। नेट डीएल शॉज को विनियमन का उपयोग करके पंजीकृत किया जाना चाहिए। मैं वास्तव में यह नहीं जानता कि यह कैसे करें, खासकर इनो सेटअप में।
कृपया लोगों की मदद करें।
ध्यान दें कि यह के दौरान होता है स्थापित करने और इस तरह के रूप में, बहुत देर हो चुकी के लिए DLL 'InitialiseSetup' दौरान इस्तेमाल किया जा रहा है। अन्यथा, बाद में डीएलएल का उपयोग करने के लिए यह एक वैध समाधान है। – Deanna
क्या होगा यदि आप ढांचे 3.5 पर काम कर रहे हैं? इसके लिए कोई स्थिरता नहीं है ... – Nyerguds
@Nyerguds मुझे लगता है कि यदि आप 3.5 में काम कर रहे हैं तो आपको लगता है कि आपके पास 2.0 के अंदर सभी कोर एक्जिक्यूटिव के साथ भी स्थापित होना चाहिए। मुझे उम्मीद है कि यह ओएस का भी हिस्सा है। –