2014-07-09 12 views
6

के बिना विजुअल स्टूडियो 2013 प्रकाशन मुझे एक WPF प्रोजेक्ट मिला है जिसे मैं किसी भी प्रकार के इंस्टॉलर के बिना प्रकाशित करने की कोशिश कर रहा हूं। असल में मैं चाहता हूं कि प्रोग्राम इसके आगे की सभी आवश्यक फाइलों के साथ एक निर्देशिका में संकलित हो, ताकि मैं सबकुछ ज़िप कर सकूं और ग्राहकों पर प्रोग्राम को तैनात कर सकूं।इंस्टॉलर

आदर्श रूप से मैं EXE में संकलित सभी बाहरी संसाधनों को रखना चाहता हूं।

क्या ऐसा करने का कोई तरीका है? अगर मैं डीबग/बिन फ़ोल्डर में जाता हूं, तो मेरे वर्कस्टेशन पर, मैं EXE निष्पादित कर सकता हूं लेकिन यदि मैं इसे डीएलएल के साथ ज़िप करता हूं और इसे किसी अन्य मशीन पर करने की कोशिश करता हूं तो यह क्रैश हो जाता है, शायद एक फ़ाइल गायब होने का मेरा अनुमान है। (अगर मैं इंस्टॉलर के साथ प्रकाशित करता हूं तो यह काम करता है लेकिन यह इस परियोजना के लिए उपयुक्त नहीं है)।

धन्यवाद स्टीव

संपादित करें: जब मैं कार्यक्रम (जो मैं एक successufull निर्माण के बाद बिन निर्देशिका से नकल) पर अमल, कुछ नहीं होता, बस संदेश "कार्यक्रम काम करना बंद कर दिया है"। मेरा प्रोग्राम 3 बाहरी फाइलों, एक आइकन, एक छवि और एक फ़ॉन्ट का उपयोग करता है। मेरे पास एक डीएलएल (WPFtoolkit) संदर्भित है, मैंने कहा कि डीएलएल मेरे समाधान एक्सप्लोरर में एक निर्देशिका में है। सभी फाइलें एंबेडेड संसाधन पर सेट हैं, और "कॉपी न करें"। मैंने यह कोड भी मेरे प्रोग्राम में जोड़ा, फिर भी वही त्रुटि। http://codeblog.larsholm.net/2011/06/embed-dlls-easily-in-a-net-assembly/ मेरे EXE का आकार सही है, मैं देख सकता हूं कि डीएलएल को "जोड़ा" गया है।

मैं संदर्भ में DLL रखना चाहिए मेरा अनुमान नहीं है, लेकिन अगर मैं ऐसा, मैं एक त्रुटि जब मैं अपने फोन मिलता है::

अभी भी इस कार्यक्रम केवल अपने कार्य केंद्र :(

संपादित करें पर काम करता है

using Microsoft.Windows.Controls; 

अगर मैं इसे कॉल नहीं करते, इस कार्यक्रम को संकलित करता है लेकिन दुर्घटनाओं दिखने वाला त्रुटि संदेश नीचे:।

Problem signature: 
    Problem Event Name: CLR20r3 
    Problem Signature 01: sw imperium.exe 
    Problem Signature 02: 1.0.0.0 
    Problem Signature 03: 53bdd468 
    Problem Signature 04: PresentationFramework 
    Problem Signature 05: 4.0.30319.18408 
    Problem Signature 06: 52312f13 
    Problem Signature 07: a19 
    Problem Signature 08: 46 
    Problem Signature 09: System.Windows.Markup.XamlParse 
    OS Version: 6.1.7601.2.1.0.256.1 
    Locale ID: 1033 
    Additional Information 1: 0a9e 
    Additional Information 2: 0a9e372d3b4ad19135b953a78882e789 
    Additional Information 3: 0a9e 
    Additional Information 4: 0a9e372d3b4ad19135b953a78882e789 
+0

** आप * दुर्घटना से क्या मतलब है *? वास्तविक त्रुटि संदेश ** का निदान करने में मदद कर सकता है। क्या आप सीधे ज़िप से निष्पादन योग्य चलाने की कोशिश कर रहे हैं? क्या लक्ष्य कंप्यूटर का सही नेट फ्रेमवर्क स्थापित है? –

+0

हां, क्लाइंट .NET स्थापित है।जब मैं प्रोग्राम निष्पादित करता हूं, कुछ भी नहीं होता है, सिर्फ "प्रोग्राम ने काम करना बंद कर दिया है" संदेश। मेरा प्रोग्राम 3 बाहरी फाइलों, एक आइकन, एक छवि और एक फ़ॉन्ट का उपयोग करता है। मेरे पास एक डीएलएल (WPFtoolkit) संदर्भित है, मैंने कहा कि डीएलएल मेरे समाधान एक्सप्लोरर में एक निर्देशिका में है। सभी फाइलें एंबेडेड संसाधन पर सेट हैं, और "कॉपी न करें"। मैंने यह कोड भी मेरे प्रोग्राम में जोड़ा, फिर भी वही त्रुटि। http://codeblog.larsholm.net/2011/06/embed-dlls-easily-in-a-net-assembly/ – user3617652

+0

क्या आपके पास वीएस 2013 स्थापित और क्लाइंट के समान वातावरण के साथ किसी अन्य मशीन तक पहुंच है? मैं कोड को कोड के साथ एक अलग मशीन पर कॉपी करने की कोशिश करता हूं और फिर ** अपनी वास्तविक मशीन ** से एप्लिकेशन निर्माण निष्पादित करने का प्रयास करते समय एक डीबगर संलग्न करता हूं। जब एप्लिकेशन टूट जाता है तो यह आपको उस वास्तविक रेखा पर इंगित करेगा जहां यह टूट रहा है। – Sandesh

उत्तर

1

टूलकिट (जहां दृश्य स्टूडियो है) GAC में आपके पीसी पर स्थापित है सभी? फाइलें एक एम्बेडेड संसाधन के रूप में शामिल नहीं किया जाना चाहिए स्थानीय प्रतिलिपि बनाना चाहिए (जिस स्थिति में निर्माण उन फ़ाइलों को बिन फ़ोल्डर में कॉपी करेगा।

समस्या को अलग करने और एक बेहतर त्रुटि संदेश प्राप्त करने के लिए कोड को एक गैर डेवलपर पीसी पर ले जाएं और फ़्यूज़न लॉगर को लोडर नहीं मिल सकता है जो किसी भी असेंबली को खोजने के लिए सक्षम करें।

, लोडर (संलयन) लकड़हारा How to enable assembly bind failure logging (Fusion) in .NET

एप्लिकेशन स्टार्टअप के लिए कुछ अतिरिक्त त्रुटि लॉगिंग कोड जोड़ने पर विचार करें के बारे में अधिक सूचना के आधार पर यह लिंक देखें देखने .NET application cannot start and receive XamlParseException

+1

जैसा दिखने के लिए कुछ जानकारी दे सकता है हां टूलरिट डेवलपर मशीन पर स्थापित है। जैसा कि मैंने कहा, अगर मैं प्रोजेक्ट प्रकाशित करता हूं, जो इंस्टॉलर बनाता है, तो मैं बिना किसी समस्या के तैनात कर सकता हूं। यह ठीक स्थापित करता है और प्रोग्राम ठीक काम करता है। – user3617652

+1

यदि इंस्टॉलर ठीक से काम कर रहा है तो इंस्टॉलर से फ़ाइलों को निकालने के लिए निम्न का उपयोग करें ताकि आप यह देख सकें कि आप कौन सी फाइल गायब हैं। आप किसी भी मामले में एक इंस्टॉलर का उपयोग करना चाहिए। msiexec/एक पथ ToMSIFile/qb TARGETDIR = DirectoryToExtractTo –

1

वहाँ विधानसभा विलय के लिए एक अच्छा उपकरण है कि WPF का समर्थन करता है: .net reactor। आप Vitevic Assembly Embedder भी आजमा सकते हैं। इस सहायता की आशा करें।

1

आप किसी भी अनुपस्थित निर्भरता को देखने और एप्लिकेशन को प्रोफ़ाइल देखने के लिए this आलेख से गुजरना चाहेंगे।

पुनश्च: यह मदद करता है नहीं करता है, तो questionlike नमूना कोड और/या में अधिक जानकारी जोड़ने का प्रयास करें द्विआधारी

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