2012-01-14 10 views
5

मुझे एक समस्या है जो मुझे पागल बनाता है।क्लिकऑन स्थापित करना डीपीआई-जागरूक अनुप्रयोग

मैं विजुअल स्टूडियो 2010 पेशेवर का उपयोग करता हूं।

<?xml version="1.0" encoding="utf-8"?> 
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" > 
    <asmv3:application> 
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings"> 
     <dpiAware>true</dpiAware> 
    </asmv3:windowsSettings> 
    </asmv3:application> 
</assembly> 

तब मैं अपने एप्लिकेशन को प्रकाशित करना है और मैं इसे स्थापित करने का प्रयास: मैं रास्ते में डीपीआई-अवगत आवेदन कि माइक्रोसॉफ्ट से पता चला है here, जो सामान्य इस युक्त आवेदन करने के लिए एक प्रकट जोड़ने में है बनाएँ। पूर्ण असफलता। स्थापना त्रुटि विंडो के दौरान यह पता चला है कि एप्लिकेशन ठीक से स्वरूपित नहीं है (यह एक अनुवाद है, मैं ऑपरेटिंग सिस्टम के पोलिश संस्करण का उपयोग करता हूं)। त्रुटि लॉग से पता चलता है कि प्रकट निर्माण के दौरान HRESULT 0x8007001f अपवाद था। इस अपवाद का अर्थ है कि "डिवाइस काम नहीं कर रहा है"। बढ़िया लेकिन क्या डिवाइस?

Google शोध ने सुझाव दिया कि मुझे मिली तरह की त्रुटि से असेंबली पर अनुचित हस्ताक्षर करने के साथ कुछ करना पड़ सकता है। मैंने सफलता के बिना विभिन्न तरीकों से असेंबली पर हस्ताक्षर करने के लिए इस टाईंग को हल करने के कई घंटे बिताए हैं।

मुझे क्या पता चला है कि पूरे <windowsSettings> टैग पर टिप्पणी करने के लिए पर्याप्त है और फिर एप्लिकेशन किसी भी असेंबली पर हस्ताक्षर किए बिना भी इंस्टॉल हो जाता है। मुझे आश्चर्य है कि क्या इस तथ्य के साथ कुछ करने का समय है, कि जब आप वेब ब्राउज़र में उस टैग के xmlns विशेषता में उस यूआरएल टाइप करते हैं तो सर्वर "आपके अनुरोध को संसाधित करते समय एक त्रुटि हुई" के साथ प्रतिक्रिया करता है। संदेश।

क्या कोई मदद कर सकता है? मैंने Win7, win7 64 और winxp के साथ कई मशीनों पर यह कोशिश की है और हर बार मुझे एक ही परिणाम मिलता है ... मुझे आश्चर्य है कि Google इस बारे में कुछ भी क्यों नहीं दिखाता है। क्या मैं अकेला हूं जो ClickOnce प्रकाशित डीपीआई-जागरूक एप्लिकेशन को स्थापित करने का प्रयास करता है?

उत्तर

2

बस कोड से डीपीआई को अवगत कराएं। कुछ इस तरह:

[System.Runtime.InteropServices.DllImport("user32.dll")] 
private static extern bool SetProcessDPIAware(); 

[STAThread] 
static void Main() 
{  
    if (Environment.OSVersion.Version.Major >= 6) SetProcessDPIAware(); 

    Application.EnableVisualStyles(); 
    Application.SetCompatibleTextRenderingDefault(false); 
    ... 

और app.manifest निकालने के लिए, यह एक बार विज़ार्ड प्रकाशित क्लिक के द्वारा बनाई जानी चाहिए।

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