2010-04-06 10 views
5

के तहत डेल्फी ऐप मेनिफेस्ट फ़ाइल समस्याएं मेरा अंतिम प्रश्न "विन -7 के तहत सूची सेवा और सेवाओं की स्थिति" ने मुझे ऐसे समाधान पर काम करना शुरू कर दिया जो मेरे ऐप को Windows Vista के तहत व्यवस्थापक विशेषाधिकारों को एक .manifest फ़ाइल के आधार पर देता है ।WinXP और Win7

मेरा ऐप अब 7 विन के तहत ठीक काम करता है या नहीं, मैं इसे "व्यवस्थापक के रूप में" चलाएँ:

मैं इस मामले के साथ पिछले प्रश्न जारी रखने के बारे में के बाद से वे एक ही इसलिए यहाँ नहीं हैं एक और सवाल यह है कि यकीन नहीं था मेनिफेस्ट फ़ाइल की वजह से। मेरे मैनिफ़ेस्ट फ़ाइल का पालन है: alt text http://www.freeimagehosting.net/uploads/39787fd3dd.jpg

मैं "unknow" प्रकाशक कैसे बदल सकते हैं:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
    <assemblyIdentity version="1.6.0.5" processorArchitecture="X86" name="ServiceMonitorPro" type="win32"/> 
    <description publisher="Powershield Ltd" product="Powershield Service Monitor">Powershield Service Monitor</description> 
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> 
    <security> 
    <requestedPrivileges> 
    <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> 
    </requestedPrivileges> 
    </security> 
    </trustInfo> 
</assembly> 

आवेदन विंडोज 7 या Vista पर चलता है, यूएसी इस तरह एक संवाद के साथ आता है?

दूसरी और सबसे बड़ी समस्या यह है कि WinXP के तहत Win7 या Vista के तहत कोई समस्या नहीं है, यह अब संदेश के साथ क्रैश हो रहा है: "यह एप्लिकेशन प्रारंभ करने में विफल रहा है क्योंकि अनुप्रयोग कॉन्फ़िगरेशन गलत है। पुनर्स्थापित करना एप्लिकेशन इस समस्या को ठीक कर सकता है। "

एक और बात मैं जोड़ना चाहते हैं: यदि मैं संदर्भ (खंड का उपयोग करता है) XPMan एप्लिकेशन WinXP पर ठीक काम करता है के लिए जोड़ लेकिन फिर यह मेरी .manifest फ़ाइल Vista या Win7 के तहत कोई diference बनाता है।

उत्तर

12

मुझे सभी को धन्यवाद देना है कि टिप्पणियों या उत्तरों के साथ मुझे खुदाई रखने के लिए इंगित करें ... :) मैं WindowsXP.res फ़ाइल को खोजने के लिए गया था। कि फ़ाइल की सामग्री है:

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
    <assemblyIdentity 
    type="win32" 
    name="DelphiApplication" 
    version="1.0.0.0" 
    processorArchitecture="*"/> 
    <dependency> 
    <dependentAssembly> 
     <assemblyIdentity 
     type="win32" 
     name="Microsoft.Windows.Common-Controls" 
     version="6.0.0.0" 
     publicKeyToken="6595b64144ccf1df" 
     language="*" 
     processorArchitecture="*"/> 
    </dependentAssembly> 
    </dependency> 
</assembly> 

समाधान: मैं WindowsXP.Res एक्सएमएल एक निर्भरता खंड जोड़ने के साथ मेरी .manifest फ़ाइल मिलाया है। यदि कोई जानता है कि अब यह क्यों काम कर रहा है, तो मुझे इसके बारे में सुनकर खुशी होगी - लेकिन यह समाधान यहां था - अब तक मेरे कंप्यूटर और कुछ अन्य लोगों पर परीक्षण की गई है ... काम कर रहा है :)

+0

बहुत बढ़िया! यहां समाधान पोस्ट करने के लिए धन्यवाद। मुझे लगता है कि इसके लिए एक अच्छा बैज है, अगर यह पर्याप्त हो गया है। –

8

आपको कोड कोडिंग प्रमाणपत्र के साथ अपने कोड पर हस्ताक्षर करने की आवश्यकता है। यहां बहुत सारे उदाहरण होना चाहिए। मैंने आपके प्रश्न को "कोड-हस्ताक्षर" के साथ फिर से टैग किया है, और आप "प्रमाण पत्र" भी देख सकते हैं।
मैं अपने आप को कॉमोडो कॉर्ट का उपयोग करता हूं, और उन्हें भयानक, अद्भुत, विजुअल बिल्ड प्रो v6 के साथ साइन इन करता हूं, जो SO पर विज्ञापनदाता है।

+0

हाय, ठीक है - की जाँच करेगा यह, धन्यवाद - दूसरी समस्या के साथ कोई विचार? – ronaldosantana

+0

क्षमा करें, उसने दूसरा नहीं देखा है। –

+1

@ रोनाल्डो: अन्य त्रुटि संदेश को तथाकथित "साइड-बाय-साइड कॉन्फ़िगरेशन" के साथ करना है। सरल शब्दों में, यह कुछ रन-टाइम लाइब्रेरी ढूंढने की उम्मीद कर रहा है, लेकिन नहीं कर सकता। यह हाल ही में कंपेलरों के साथ निर्मित वीसी ++ अनुप्रयोगों के लिए अपेक्षाकृत अक्सर देखा जाता है। हालांकि, आमतौर पर डेल्फी ऐप्स के लिए कोई समस्या नहीं होगी। क्या आप कुछ बाहरी डीएलएल पर निर्भर हैं? क्या आपने जांच की है कि वे वास्तव में एक्सपी पर उपलब्ध हैं, या यदि उन्हें अलग-अलग स्थापित करने की आवश्यकता है? अगर उन्हें स्थापित करने की आवश्यकता है, तो क्या आपको वास्तव में उन्हें स्थापित करना याद आया? (अरे, आप कभी नहीं जानते ...) –

3

आप अपने मैनिफेस्ट में विंडोज के विभिन्न संस्करणों के साथ संगतता भी इंगित कर सकते हैं। मुझे पता है कि Vista और Win7 के साथ संगतता के लिए प्रविष्टियां हैं; एक्सपी के बारे में निश्चित नहीं है।

मेनिफेस्ट संगतता अनुभाग के बारे में जानकारी MSDN पर उपलब्ध है।यह मदद मिल सकती है, यह भी - लिंक किए गए पृष्ठ से:

<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> 
<application> 
<!--The ID below indicates application support for Windows Vista --> 
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/> 
<!--The ID below indicates application support for Windows 7 --> 
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> 
</application> 
</compatibility> 
1

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

यहाँ जो विंडोज 7 में व्यवस्थापक मोड में चलने की जरूरत है एक Delphi2007 अनुप्रयोग के लिए एक पूरा मैनिफ़ेस्ट फ़ाइल है, और भी क्रम विषय समर्थन को सक्षम करने के लिए "निर्भरता" खंड में शामिल हैं:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
     <assemblyIdentity 
     type="win32" 
     name="CodeGear RAD Studio" 
     version="11.0.2902.10471" 
     processorArchitecture="*"/> 
     <dependency> 
     <dependentAssembly> 
      <assemblyIdentity 
      type="win32" 
      name="Microsoft.Windows.Common-Controls" 
      version="6.0.0.0" 
      publicKeyToken="6595b64144ccf1df" 
      language="*" 
      processorArchitecture="*"/> 
     </dependentAssembly> 
     </dependency> 
     <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> 
     <security> 
      <requestedPrivileges> 
      <requestedExecutionLevel 
       level="requireAdministrator" 
       uiAccess="false"/> 
      </requestedPrivileges> 
     </security> 
     </trustInfo> 
    </assembly>