2013-08-17 10 views
5

Miałem zamiar przejść przez różne opcje zaciemniania, które mam i aby to zrobić, najpierw spróbowałem swoich sił w Crypto.Próba zaciemnienia mojego projektu za pomocą Crypto złamał go

tutaj są kroki, że następuje:

  1. kreatora Otwarte Cypto oraz wybrane pewne opcje.
  2. Wybierz mój plik rozwiązania.

Ukończyłem kreatora i zobaczyłem, że niektóre biblioteki DLL zostały dobrze zaciemnione, ALE mój projekt nie jest teraz budowany. Dwie rzeczy, które zauważyłem to to, że w moim folderze znajduje się ten dziwny plik .OBPROJ, który jest odpowiedzialny za usunięcie wszystkich moich starych złożeń, a następnie ich zaciemnienie.

widzę następujący błąd na 4 moich 18 projektów, które nie budują:

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

Coś bardzo podobna dla wszystkich 4 projektów, które są upadających. Teraz nie jestem pewien, co to zrobiło do plików dll w OBj/Debug folder, ale plików absolutnie nie ma.

Inną rzeczą, którą zauważyłem jest to, że wszystkie projekty, gdy są budowane indywidualnie, dobrze się układają. Tak więc jest zdecydowanie coś złego, co stało się z moim plikiem rozwiązania. Ale nie jestem w stanie dowiedzieć się, co dokładnie się zmieniło.

+0

commonlib .pdb istnieje, ale nie ma pliku commonlib.dll ... – TeaLeave

+0

Jeszcze jedną rzeczą, którą zauważyłem było to, że gdy ręcznie skopiowałem wszystkie te brakujące złoŜenia z folderu Bin do Obj, a następnie ponownie zrobiłem kompilację, zobaczyłem te same błędy. Również kiedy przeglądałem foldery, pliki zniknęły. – TeaLeave

+0

Czy kiedykolwiek to rozwiązałeś? Mam ten sam problem. –

Odpowiedz

3

Miałem ten sam problem niedawno i tak, choć nieaktualne, tutaj jest odpowiedź dla każdego innego.

Jest to związane z zamówieniem budowy. Zauważyłem, że kolejność kompilacji w VS nie zawsze odpowiadała faktycznemu porządkowi kompilacji. Sugeruję przeglądanie okna wyjściowego po nieudanej kompilacji i zobaczenie, które projekty są budowane jako pierwsze i ostatnie (potrzebne do skonfigurowania Crypto). Oczywiście, nie zapomnij zignorować żadnych projektów, które są projektami konfiguracyjnymi lub projektami, które nie są budowane w trybie wydania.

Wszystko, czego potrzeba, to zmienić konfigurację krypto z poprawnymi pierwszymi i ostatnimi projektami, przeładować rozwiązanie i będzie ono budowane.

2

Miał podobny problem. Po wielu zmaganiach znalazł rozwiązanie.

W procesorze wielordzeniowym VS będzie równolegle wykonywał kompilację, co powoduje, że obkurator Cyrpto działa przed zakończeniem ostatniego projektu.

Dokonywanie Maksymalna liczba równoległych kompilacji projektu do 1 w VS 2013 rozwiązuje ten problem.

Narzędzia - Opcje .. - zbudować i uruchomić

enter image description here

0

ja po prostu ten sam problem, tutaj jest moja odpowiedź na podstawie dokumentacji pomocy Crypto, to całkowicie usunie zależność rozwiązanie do Crypto tłumiąc jego integracja z MSBuild.

  • Edycja csproj/pliki vbproj pierwszego i ostatniego wybranego projektu po uruchomieniu kreatora Crypto: usunąć całą zawartość między <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == '....'"> i <Import Project="..." /> (włącznie) w kierunku końca plikach projektowych.

Więc w moim przypadku usunięte w moim pierwszym projekcie:

<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)' == '....' "> 

i moja ostatnia:

<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" /> 

budować i voila!

0

Zasadniczo błąd zdarza się, gdy

1: trzeba raz określony projekt, aby być pierwszy lub ostatni w swojej rozwiązanie to nie jest lub nie jest to przypadek. 2: masz też coś takiego jak uzależnienie od Newtonsoft.Json

Przypadek 1: zdarzyło mi się uruchomić w tym samym numerze podczas dodawania zależność na zasadzie „jak określono poprzednie starcie” projektu. Uruchomiłem kreatora ponownie, a następnie 2 projekty oznaczone jako pierwsze ...

Co się dzieje, to, że używasz tej samej biblioteki dll w kilku projektach, w których jeden jest pierwszy, a drugi to pierwszy, następnie zacznij ręcznie aktualizować projekt w zależności od tego, co kompilujesz.

Idealnie, potrzeba ustawiania pierwszej lub ostatniej nie powinno być potrzebne, gdyż kolejność budowy jest już w roztworze, ale nie działają na LogicNP ...

Aby rozwiązać ten problem na wygląd reklamowania w pliku wynik VS, ponieważ jest to prawdopodobnie fałszywa "pierwsza" flaga.

Następnie kliknij prawym przyciskiem myszy projekt i wybierz "Rozładuj projekt" z wyskakującego okienka. Teraz ponownie kliknij projekt bez obciążenia prawym przyciskiem myszy i wybierz opcję Edytuj; lub otwórz plik .csproj w edytorze tekstu.

Przewiń do dołu pliku i spojrzeć na tekst, który wygląda tak ... Fałsz Fałsz Release | AnyCPU .. \ CATS.Settings_Release_AnyCPU.obproj

Zapraszamy do obejrzenia znaczniki CO_FirstProject i CO_LastProject i upewnij się, że mają właściwą opcję True i False, ponieważ "kreator" nie aktualizuje bieżących konfiguracji.

Jeszcze jedna uwaga, ale również tworzy nowy plik kryptograficznego, wszystkie stare ustawienia znikają ....

Przypadek 2: Masz zależność coś jak Newtonsoft.Json. dll, co robisz, to 1. skopiuj tę bibliotekę DLL do bezpiecznej lokalizacji, która nie jest związana z kompilacją. 2. połączyć dll w zakładce ustawień wyjściowych do właściwego głównego zespołu przez . Wybór z listy "Osadzonych zespołów zależnych w następującym głównym zespole" b. Teraz kliknij Dodatkowe zależności/pliki i dodaj plik Jeśli znajdziesz więcej przypadków, w których nie mogę się skompilować, zaktualizuję wpis lub skontaktuję się ze mną, ponieważ może to być bardzo frustrujące dla znalezienia takich błędów ...

Powiązane problemy