2013-08-17 12 views
5

मैं अपने पास अलग-अलग obfuscating विकल्पों के माध्यम से जाने के लिए प्रयास कर रहा था और ऐसा करने के लिए, मैंने पहली बार क्रिप्टो पर अपने हाथों की कोशिश की।क्रिप्टो का उपयोग करके मेरी परियोजना को खराब करने की कोशिश कर रहा है

  1. ओपन Cypto जादूगर और कुछ विकल्पों का चयन:

    यहाँ चरण हैं, जो मैं पीछा कर रहे हैं।

  2. मेरी समाधान फ़ाइल का चयन करें।

विज़ार्ड समाप्त किया और मैंने जो देखा वह था कि कुछ डीएलएस अच्छी तरह से खराब हो गए थे लेकिन मेरी परियोजना अब निर्माण नहीं कर रही है। मैंने देखा कि दो चीजें यह है कि यह अजीब है। ओब्राज फ़ाइल मेरे फ़ोल्डर में है और यह मेरी सभी पुरानी असेंबली को हटाने और बाद में उन्हें परेशान करने के लिए ज़िम्मेदार है।

मैं अपने 18 परियोजनाएं हैं जो निर्माण करने के लिए असफल रहे हैं के 4 के लिए निम्न त्रुटि देख रहा हूँ:

System.IO.FileNotFoundException: File 'C:\Dropbox\CPTFramework_old\CommonLib\obj\Debug\CommonLib.dll' not found. 

कुछ सभी 4 परियोजनाओं कि असफल रहे हैं के लिए बहुत समान। अब, मुझे यकीन नहीं है कि उसने ओबीजे/डीबग फ़ोल्डर में डीएलएल फाइलों के साथ क्या किया लेकिन फाइलें बिल्कुल नहीं हैं।

दूसरी बात जो मैंने देखा वह यह है कि सभी परियोजनाएं, व्यक्तिगत रूप से निर्माण करते समय, ठीक निर्माण करती हैं। तो निश्चित रूप से कुछ गलत है जो मेरी समाधान फ़ाइल के साथ हुआ है। लेकिन मैं यह पता लगाने में सक्षम नहीं हूं कि वास्तव में क्या बदल गया है।

+0

commonlib लगता है .pdb वहां है लेकिन commonlib.dll वहां नहीं है ... – TeaLeave

+0

मैंने देखा कि एक और चीज यह थी कि जब मैंने मैन्युअल रूप से इन सभी गायब असेंबली को बिन से ओब्जे फ़ोल्डर में कॉपी किया और फिर एक बिल्ड फिर से किया, तो मैंने वही त्रुटियां देखीं। साथ ही जब मैं फ़ोल्डरों पर ब्राउज़ करता हूं, तो फाइलें अब चली जाती हैं। – TeaLeave

+0

क्या आपने कभी इसे हल किया है? मेरे साथ भी वही दिक्कत है। –

उत्तर

3

मुझे हाल ही में एक ही समस्या थी और हालांकि, पुराना है, यहां किसी और के लिए जवाब है।

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

सभी आवश्यक है, सही और अंतिम परियोजनाओं के साथ क्रिप्टो को फिर से कॉन्फ़िगर करना है, अपना समाधान पुनः लोड करें और यह निर्माण करेगा।

2

इसी तरह की समस्या थी। बहुत सारे संघर्ष के बाद, समाधान मिला।

एक बहु कोर प्रोसेसर में, वीएस समानांतर निर्माण को चलाएगा जो अंतिम परियोजना निर्माण पूर्ण होने से पहले साइप्रेटो ओबफ्यूसेटर चलाता है।

वीएस 2013 में समानांतर परियोजना की अधिकतम संख्या 1 को इस समस्या को ठीक करेगी।

उपकरण - विकल्प .. - निर्माण और चलाने

enter image description here

0

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

  • संपादित csproj/चयनित जब आप क्रिप्टो विज़ार्ड चलाने के पहले और अंतिम परियोजना के vbproj फ़ाइलें: सभी परियोजना फ़ाइलों के अंत में के बीच <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == '....'"> और <Import Project="..." /> (सम्मिलित) सामग्री को हटा दें।

तो मेरे मामले में मैं अपनी पहली परियोजना में हटाया:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> 
    <CO_FirstProject>True</CO_FirstProject> 
    <CO_LastProject>False</CO_LastProject> 
    <CO_Config>Release|AnyCPU</CO_Config> 
    <CO_ProjectFilePath>..\.."ALL MY DLL/EXE HERE" 
    </PropertyGroup> 
    <Import Project="C:\Program Files (x86)\LogicNP Software\Crypto Obfuscator For .Net 2015\CryptoObfuscator.targets" /> 
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == '....' "> 

और मेरा आखिरी में:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> 
    <CO_FirstProject>False</CO_FirstProject> 
    <CO_LastProject>True</CO_LastProject> 
    <CO_Config>Release|AnyCPU</CO_Config> 
    <CO_ProjectFilePath>..\MySln_Release_AnyCPU.obproj</CO_ProjectFilePath> 
    </PropertyGroup> 
    <ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> 
    <CO_ObjFiles Include="ALL MY DLL/EXE HERE"> 
     <InProject>false</InProject> 
    </CO_ObjFiles> 
    <CO_BinFiles Include="..ALL MY DLL/EXE HERE"> 
     <InProject>false</InProject> 
    </CO_BinFiles> 
    </ItemGroup> 
    <Import Project="C:\Program Files (x86)\LogicNP Software\Crypto Obfuscator For .Net 2015\CryptoObfuscator.targets" /> 

बिल्ड और देखा!

0

असल में, त्रुटि होता है जब

1: आप एक बार एक परियोजना प्रथम या अंतिम और अपने समाधान में यह नहीं है या अब मामला है होना करने के लिए निर्दिष्ट किया है। 2: मैं जब एक "के रूप में पिछले स्टार्टअप निर्दिष्ट" परियोजना पर निर्भरता को जोड़ने में एक ही मुद्दे में चलाने के लिए हुआ: आप किसी निर्भरता Newtonsoft.Json

मामले 1 की तरह भी कुछ है। मैं फिर से जादूगर चला गया, फिर 2 परियोजनाओं को पहली बार ध्वजांकित किया गया था ...

यह भी होता है कि आप कई परियोजनाओं में एक ही साझा डीएल का उपयोग करते हैं जिसमें एक व्यक्ति पहला होता है और दूसरे में यह पहला होता है, फिर आप आप संकलित करने के आधार पर प्रोजेक्ट को मैन्युअल रूप से अपडेट करना प्रारंभ करें।

आदर्श रूप में, की स्थापना प्रथम या अंतिम रूप का निर्माण आदेश समाधान में पहले से ही है की जरूरत नहीं किया जाना चाहिए, लेकिन मैं LogicNP पर काम नहीं करते के लिए की जरूरत ...

उन्हें फ़ाइल के शिकायत पर इस मुद्दे को ठीक करने के लिए रंग-रूप वीएस के आउटपुट के रूप में वह झूठा "पहला" ध्वज होने की संभावना है।

फिर प्रोजेक्ट पर राइट-क्लिक करें और पॉप-अप से "अनलोड प्रोजेक्ट" का चयन करें। अब अनलोडेड प्रोजेक्ट पर राइट-क्लिक करें और संपादित करें का चयन करें; या एक पाठ संपादक में .csproj फ़ाइल खोलें।

फ़ाइल के नीचे तक स्क्रॉल और पाठ कि इस तरह दिखता है के लिए देखो ... झूठी झूठी रिलीज | AnyCPU .. \ CATS.Settings_Release_AnyCPU.obproj

पर एक नज़र डालें CO_FirstProject और CO_LastProject टैग और सुनिश्चित करें कि उनके पास सही ट्रू और गलत विकल्प है क्योंकि "विज़ार्ड" वर्तमान कॉन्फ़िगरेशन अपडेट नहीं करता है।

एक और टिप्पणी है, यह भी एक नया क्रिप्टो फ़ाइल बनाता है, एक पुरानी सेटिंग सब चले गए हैं ....

मामले 2: आप Newtonsoft.Json की तरह कुछ पर निर्भरता है। डीएलएल, आप क्या करते हैं 1. उस डीएल को एक सुरक्षित गैर-निर्माण-संबंधित स्थान पर कॉपी करें। 2. आउटपुट सेटिंग्स टैब में डीएलएल को उचित मुख्य असेंबली में ए से लिंक करें। निम्नलिखित मुख्य असेंबली में "एम्बेडेड आश्रित असेंबली" की सूची से इसे चुनना " बी। अब अतिरिक्त निर्भरता/फ़ाइलें क्लिक करें और फ़ाइल Now you should have something like this जोड़ देते हैं तो अधिक मामलों मैं कहाँ संकलन नहीं कर सकते मैं पोस्ट अद्यतन, या मुझसे संपर्क करने के रूप में यह अत्यंत इस तरह त्रुटियों को खोजने के लिए निराशा हो सकती है ...

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

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