visual-studio-2010 - मवर - परिचय और एएसपी नेट की सुविधाओं




क्या निष्पादन को रोकने के बिना दृश्य स्टूडियो 2010 में संपादन और जारी रखना संभव है? (4)

मैं आपको बता सकता हूं, लेकिन आप इसे पसंद नहीं कर सकते हैं:

1) एक दृश्य स्टूडियो उदाहरण ( game.exe -> vsInstanceA) में अपने गेम निष्पादन योग्य चलाएं।

2) अलग-अलग दृश्य स्टूडियो उदाहरण ( modifiable.dll -> vsInstanceB) का उपयोग करके, अलग डीएलएल में अपने संशोधनीय कोड को कोडित करें।

* ध्यान दें कि ऐसा करने से आप अपने modifiable.dll को संकलित कर सकते हैं, इस तरह से समय की जांच, आदि संकलन कर सकते हैं *

... और अब जहां यह मुश्किल है ...

3 ए) game.exe को modifiable.dll संदर्भित करने की आवश्यकता है। नहीं। Vcproj, वास्तविक dll

3b) जब आप "जादू कुंजी" (एक key-press के लिए game.exe देखें ) मारा, तो game.exe को modifiable.dll को अनलोड करें और इसे पुनः लोड करें। आप इसे आसानी से विधानसभा और अपडोमेन क्लास के माध्यम से प्रदान कर सकते हैं जो mscorlib में दिए गए हैं। बेशक इसका मतलब है कि आपको game.exe में किसी भी आश्रित सिस्टम को अनलोड करने की आवश्यकता है।

ध्यान दें, इस 3 बी में कई हाथों से लहराते हैं) खंड, यह काफी काम है लेकिन बहुत सीधे आगे (उदाहरण Google खोज: https://www.google.com/search?q=dynamic+load+dll+ नेट )

... और उसके बाद, आप जाने के लिए अच्छा है ...

3-alt) कुछ अन्य विकल्प यदि 3b) आप के अनुरूप नहीं हैं:

  • आप "जादू कुंजी" दबाते समय modifiable.dll को पुनर्निर्माण करने के लिए msbuild.exe खोल सकते हैं
  • आप सीएसएचआरपी कंपाइलर डीएलएल का इस्तेमाल पूरी तरह से संशोधित करने के बजाय प्रत्येक वर्ग को फिर से कंपाइल करने के लिए कर सकते हैं।

लेकिन दुर्भाग्य से, मेरे 10+ वर्षों के शुद्ध विकास के दौरान, यह एकमात्र तरीका है, जब तक कि किसी ने इसे करने के लिए कोई तृतीय पक्ष उत्पाद नहीं बनाया है (आईई: वे जो मैंने आपके लिए उल्लेख किया है)

मैंने हाल ही में नोच के Ludum Dare लाइव स्ट्रीम का एक छोटा सा देखा। जब वह अपने गेम पर काम करता है तो वह बड़े पैमाने पर एक्लिप्स की हॉटस्फ़ेप सुविधा का उपयोग करता है (यहां एक वीडियो है जो मैं http://www.twitch.tv/notch/b/302823358?t=86m30s का संदर्भ दे रहा हूं)

मैं सी # और एक्सएनए के साथ ऐसा करना चाहूंगा सौभाग्य से, दृश्य स्टूडियो में एक संपादन और जारी रखें सुविधा है। हालांकि, मैं अपने रेंडरिंग कोड को संपादित करना चाहूंगा, जबकि इसे रोकने के बजाय चल रहा है

क्या ऐसा करने के लिए दृश्य स्टूडियो को सेटअप करना मेरे लिए संभव है? मैंने देखा कि Break all processes when one process breaks को Break all processes when one process breaks लिए एक चेकबॉक्स Break all processes when one process breaks । क्या मुझे संभवत: मेरे रेंडरिंग लूप को दूसरे धागे में सेट करना संभव है, जिससे कि मैं एक बदलाव कर रहा हूं, जबकि गेम रेंडर करता है?


यह ठीक नहीं हो सकता है कि आप क्या चाहते हैं, लेकिन यह मैं कर रहा हूं। बस एक ब्रेक पॉइंट में फेंक दें, जबकि आपका गेम चल रहा है। इसे बंद होने के बाद, आप चीजों को संपादित कर सकते हैं, ब्रेक पॉइंट को निकाल सकते हैं, और फिर जारी रखने के लिए F5 दबा सकते हैं।

अधिकांश भाग के लिए, यह आपको गेम संपादित करते समय चीजें संपादित करने की अनुमति देता है और बाद में गेम को जारी रखता है लेकिन यह सब कुछ के लिए काम नहीं करता है आप वर्ग स्तर की चीज़ों को जोड़ या हटा नहीं सकते हैं और पूरे कार्य या पैरामीटर जोड़ नहीं सकते / निकालें नहीं। अधिकतर, मैं इसे हर छोटी सी चीजों के लिए अलग-अलग संख्याओं और समीकरणों का परीक्षण करने के लिए करता हूं जो प्रत्येक अपडेट को प्रभावित करते हैं


मूल प्रश्न "विजुअलाइज स्टूडियो 2010 में निष्पादन को रोकने के बिना जवाब देने के लिए?"

नहीं। जावा के लिए जेआरबेल जो यह अनुमति देता है।

मैं जल्दी से कल्पना कर सकता हूं कि माइक्रोसॉफ्ट ने ऐसा क्यों नहीं किया है - अगर आपके पास कुछ प्रकार की समिति है या चीजों के डिजाइन करने वाले लोगों के समूह हैं - एक भी व्यक्ति को अच्छे तर्कों के साथ आने के लिए आसान है, जहां यह "गतिशील सॉफ़्टवेयर अपडेट" / हाटस्पेप टूट जाएगा नीचे गोली मारना बहुत आसान है या यदि वे इसके साथ आगे बढ़ते हैं, तो यह कुछ पूरी तरह से नया "एंटरप्राइज फ़्रेमवर्क" के माध्यम से किया जाएगा, जिसमें कहीं भी बहुत सारे कदम, काम और समझने की आवश्यकता होती है, क्योंकि वे इसे जटिल ऑनलाइन परिदृश्यों के लिए उपयोग करना चाहते हैं

मैं चाहता हूं कि ऐसा करने का कुछ आसान तरीका था - मैं जोखिम ले लूंगा, और बहुत अस्वीकार कर दूंगा कि अगर आप चाहते हैं कि हॉटस्वाप सेवाओं जो बाहरी सिस्टम से बात करती हो तो आपको उस जटिल ढांचा का इस्तेमाल करना चाहिए या जो भी हो

सबसे सामान्य परिस्थिति जहां यह कम जोखिम के साथ सुरक्षित रूप से इस्तेमाल किया जा सकता है प्रोटोटाइप और इंजन के कुछ प्रकार के या तो उच्च स्टार्टअप लागत या अधिक होने की संभावना के साथ, व्यवहार का अध्ययन करने के लिए अगर इंजन में कुछ चल रहा है (जैसे नियम) छोटी गाड़ी है और बग को प्रदर्शित करने के लिए , बहुत सी चीज़ें होने हैं और संभव है कि आप हमेशा बग का सामना न करें। ऐसा ही मामला है जहां यह डिबगिंग समय के सप्ताह को बचा सकता है, कम से कम मेरे मामले में होता।


मेरा उपयोग IntelliJ Idea + DCEVM (गतिशील कोड विकास VM) में जावा में काम करने के लिए किया जाता है।

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

हालांकि यदि आप कर सकते हैं, तो नवीनतम एनएटी कोर का उपयोग करने की कोशिश करें जो डॉटनेट वॉच का उपयोग करके बेहतर उत्पादकता प्रदान करता है। अभी भी डीसीवीएम के रूप में इतनी तेज नहीं है, लेकिन परंपरागत वी.एस + + नेट गर्म पुनः लोड अनुभव से बेहतर है। यहाँ विवरण





edit-and-continue