2010-02-01 25 views
9

मैंने एक WPF एप्लिकेशन बनाया है और बाहरी उपकरण के साथ मुख्य .exe को obfuscated किया है।क्या विजुअल स्टूडियो 2008 में बनाए गए क्लिकऑन एप्लिकेशन को अपनाना संभव है?

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

मैं समाधान → विन्यास प्रबंधक के तहत निर्माण चेक बॉक्स निष्क्रिय है, लेकिन यह काम नहीं किया: निष्पादन का पुनर्निर्माण किया जाता रहा है जब मैं http://localhost/MyApplication

को एप्लिकेशन को प्रकाशित करना यह कंपाइल बिना मेरे ClickOnce आवेदन तैनात करने के लिए संभव है वर्तमान परियोजना?

यदि यह कोई तरीका नहीं है, तो क्या वांछित फ़ाइलों के साथ क्लिकऑन एप्लिकेशन उत्पन्न करने के लिए कोई निःशुल्क टूल है?

+0

http://stackoverflow.com/questions/3416223/how-to-use-obfuscation-for-clickonce/12036582#12036582 (संभावित डुप्लिकेट) पर एक नज़र डालें? – Matmarbon

उत्तर

7

अस्वीकरण की परेशानी की बचत होगी: मैं, PreEmptive समाधान के लिए काम Dotfuscator के निर्माताओं।

जेरेड के समाधान के साथ समस्या यह है कि एक पोस्ट बिल्ड कार्य बिल्ड प्रक्रिया में बहुत देर से निष्पादित करता है क्योंकि क्लिकऑन बिल्ड चरण मैन बिल्ड (मैनेंटाइन हस्ताक्षर, जिसमें obfuscation परिवर्तन शामिल हैं) पोस्ट बिल्ड आग से बहुत पहले बनाते हैं। आप AfterCompile चरण में obfuscation कार्य को कॉल करने के लिए MSBuild फ़ाइल (your .csproj/.vbproj) फ़ाइल को हैक कर सकते हैं और obfuscator को बिन निर्देशिका बनाने में obfuscated असेंबली डंप कर सकते हैं लेकिन यह एक दर्द है।

एक दूसरा विकल्प बनाना ClickOnce अपने एप्लिकेशन को प्रकाशित, विधानसभाओं मुश्किल होता, समझ से परे संस्करणों के साथ प्रकाशित विधानसभाओं अधिलेखन और फिर चल दाना दिखाया गया है here प्रकट होता है पुनः बनाना द्वारा प्रकट होता है दाना/MageUI उपकरणों का उपयोग करने के लिए है। Mage उपयोगिता के लिए प्रलेखन here है।

एक तीसरा विकल्प यह है कि यदि आपका obfuscator Dotfuscator व्यावसायिक संस्करण संस्करण 4.6.1010 या उच्चतर है। डॉटफस्केटर में इनपुट के रूप में क्लिकऑन परिनियोजन मैनिफेस्ट को सीधे पढ़ने की क्षमता है, असेंबली को खराब कर देता है और दोनों obfuscated असेंबली और पूरी तरह से अद्यतन मैनिफेस्ट फ़ाइलों को आउटपुट करता है। शुरुआती बिंदु के लिए here देखें।

1

मुझे बिल्कुल समझ में नहीं आता कि ClickOnce के पास यह स्पष्ट व्यवहार क्यों है। हालांकि आप निर्माण प्रणाली में obfuscation कदम डालने के द्वारा इस के आसपास काम करने में सक्षम होना चाहिए। एक पोस्ट बिल्ड कार्य को परिभाषित करने का प्रयास करें जो EXE/DLL के विरुद्ध obfuscator चलाता है। चूंकि यह निर्माण के हिस्से के रूप में चलाएगा, क्लिकऑन ओबफस्केटेड डीएलएल पुनर्निर्माण उठाएगा या नहीं।

यह भी आप इसे मैन्युअल रूप से चल रहा है :)

2

बस FYI करें, यह दृश्य स्टूडियो 2010

में नियंत्रित किया जाता है इस दौरान, आप, एक फ़ोल्डर में प्रकाशित विधानसभाओं अंधेरा करना, और तैनाती या तो दाना या MageUI का उपयोग कर फिर से साइन इन करना होगा। ऐसा इसलिए है क्योंकि ClickOnce असेंबली को हंसता है, और जब आप उन्हें खराब करते हैं, तो यह हैश बदलता है, और वे अब मैनिफेस्ट में जानकारी से मेल नहीं खाते हैं।

RobinDotNet

0

मेरी कंपनी ClickOnceMore बुलाया सॉफ्टवेयर का एक टुकड़ा है जो इस परिदृश्य के लिए आदर्श है लिखता है। ClickOnceMore ClickOnce टूल है जिसका उपयोग बड़े निर्माण प्रक्रिया के हिस्से के रूप में ClickOnce को स्वचालित करने के लिए किया जा सकता है।

फ़ाइल समावेशन नियमों का उपयोग करके आप ClickOnceMore प्रोजेक्ट में अपनी obfuscated असेंबली शामिल कर सकते हैं और फिर ClickOnceMore कमांड लाइन टूल का उपयोग करके ClickOnce प्रकट कर सकते हैं।

हमारे कई ग्राहक क्लिकऑन्समोर का उपयोग ओपनफेंसेटेड असेंबली के साथ क्लिकऑन मैनिफ़ेस्ट बनाने के लिए करते हैं। आप www.clickoncemore.net पर सॉफ़्टवेयर पा सकते हैं।

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