2013-08-17 31 views
5

Tôi buộc phải trải qua các tùy chọn khác nhau mà tôi có và để làm điều đó, lần đầu tiên tôi thử dùng Crypto.Cố gắng làm xáo trộn dự án của tôi bằng cách sử dụng Crypto đã phá vỡ nó

đây là các bước mà tôi theo:

  1. mở Cypto wizard và chọn một số tùy chọn.
  2. Chọn tệp giải pháp của tôi.

Hoàn thành trình hướng dẫn và những gì tôi thấy là có một số Dll cũng bị làm mờ NHƯNG dự án của tôi hiện không xây dựng. Hai điều tôi nhận thấy là có tệp .OBPROJ lạ trong thư mục của tôi và có trách nhiệm xóa tất cả các hội đồng cũ của tôi và sau đó làm xáo trộn chúng sau này.

tôi nhìn thấy lỗi sau 4 của 18 dự án của tôi được không xây dựng:

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

cái gì đó rất tương tự cho tất cả 4 dự án đang thất bại. Bây giờ, tôi không chắc chắn những gì nó đã làm cho các tập tin dll trong thư mục OBJ/Debug nhưng các tập tin là hoàn toàn không có.

Điều khác mà tôi nhận thấy là tất cả các dự án, khi xây dựng riêng lẻ, hãy xây dựng tốt. Vì vậy, chắc chắn có điều gì đó sai trái đã xảy ra với tệp giải pháp của tôi. Nhưng tôi không thể tìm ra chính xác những gì đã thay đổi.

+0

commonlib .pdb là có nhưng commonlib.dll là không có ... – TeaLeave

+0

Một điều nữa mà tôi nhận thấy là khi tôi sao chép thủ công tất cả các hội đồng bị thiếu này từ thư mục Bin sang Obj và sau đó thực hiện lại một lần nữa, tôi đã thấy các lỗi giống nhau. Ngoài ra khi tôi duyệt đến các thư mục, các tập tin đã biến mất ngay bây giờ. – TeaLeave

+0

Bạn đã bao giờ giải quyết vấn đề này chưa? Tôi có cùng một vấn đề. –

Trả lời

3

Tôi đã gặp vấn đề tương tự gần đây và vì vậy, mặc dù đã lỗi thời, đây là câu trả lời cho bất kỳ ai khác.

Nó có liên quan đến trật tự xây dựng của bạn. Tôi thấy rằng thứ tự xây dựng trong VS không phải lúc nào cũng tương ứng với thứ tự xây dựng thực tế. Tôi đề nghị xem xét thông qua các cửa sổ đầu ra sau khi một xây dựng không thành công và xem những dự án được xây dựng đầu tiên và cuối cùng (bạn cần những cấu hình Crypto). Rõ ràng, đừng quên bỏ qua bất kỳ dự án nào được thiết lập dự án hoặc dự án không được xây dựng trong chế độ phát hành.

Tất cả những gì được yêu cầu, là định cấu hình lại mật mã với các dự án đầu tiên và cuối cùng chính xác, tải lại giải pháp của bạn và nó sẽ xây dựng.

2

Có vấn đề tương tự. Sau nhiều cuộc đấu tranh, tìm ra giải pháp.

Trong một bộ xử lý đa lõi, VS sẽ chạy phần mềm song song làm cho bộ obfuscator Cyrpto chạy trước khi hoàn thành dự án xây dựng cuối cùng.

Làm số lượng tối đa các dự án song song được xây dựng thành 1 trong VS 2013 sẽ khắc phục vấn đề này.

Tools - Options .. - Xây dựng và chạy

enter image description here

0

tôi chỉ nhận được cùng một vấn đề, đây là câu trả lời của tôi dựa trên sự giúp đỡ tài liệu Crypto, nó hoàn toàn loại bỏ sự phụ thuộc giải pháp của bạn để Crypto bằng cách ức chế tích hợp MSBuild của nó.

  • Sửa csproj/file vbproj của dự án đầu tiên và cuối cùng được lựa chọn khi bạn chạy trình hướng dẫn Crypto: loại bỏ tất cả các nội dung giữa các <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == '....'"><Import Project="..." /> (bao gồm) vào cuối các tập tin dự án.

Vì vậy, trong trường hợp của tôi, tôi gỡ bỏ trong dự án đầu tiên của tôi:

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

và cuối cùng của tôi:

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

xây dựng và thì đấy!

0

Về cơ bản, các lỗi xảy ra khi

1: bạn đã một lần được quy định một dự án để là người đầu tiên hoặc cuối cùng và trong giải pháp của bạn đây không phải là hay không còn là trường hợp. 2: bạn có một sự phụ thuộc quá cái gì đó như Newtonsoft.Json

trường hợp 1: tôi tình cờ gặp phải vấn đề tương tự khi thêm một sự phụ thuộc vào một dự án "như khởi động trước quy định". Tôi đã chạy thuật sĩ một lần nữa sau đó có 2 dự án được gắn cờ đầu tiên ...

Điều gì cũng xảy ra là bạn sử dụng cùng một dll được chia sẻ trong một số dự án trong đó một dự án đầu tiên và bắt đầu phải cập nhật thủ công dự án tùy thuộc vào những gì bạn biên dịch.

Một cách lý tưởng, nhu cầu lập đầu tiên hoặc cuối cùng không nên cần thiết như trình tự xây dựng đã có trong giải pháp nhưng tôi không làm việc tại LogicNP ...

Để khắc phục cái nhìn vấn đề ở lời kêu ca của tập tin trong đầu ra của VS vì đó là kết quả có khả năng có cờ "đầu tiên" sai.

Sau đó nhấp chuột phải vào dự án và chọn "Hủy dự án" từ cửa sổ bật lên. Bây giờ một lần nữa Kích chuột phải vào dự án chưa được tải và chọn Edit; hoặc mở tệp .csproj trong trình soạn thảo văn bản.

Di chuyển đến dưới cùng của tập tin và tìm kiếm văn bản trông như thế này ... False False phát hành | AnyCPU .. \ CATS.Settings_Release_AnyCPU.obproj

Có xem xét các thẻ CO_FirstProject và CO_LastProject và đảm bảo rằng chúng có tùy chọn Đúng và Sai đúng vì "wizard" không cập nhật các cấu hình hiện tại.

Một lưu ý hơn, nó cũng tạo ra một thương hiệu tập crypto mới, tất cả các thiết lập cũ đã mất hết ....

trường hợp 2: Bạn có một sự phụ thuộc vào một cái gì đó giống như Newtonsoft.Json. dll, những gì bạn làm là 1. sao chép dll đó đến một vị trí an toàn không liên quan đến xây dựng. 2. liên kết dll trong tab cài đặt đầu ra với cụm chính thích hợp bằng a. Chọn nó từ danh sách "Hội đồng phụ thuộc nhúng trong hội đồng chính sau" b. Bây giờ hãy nhấp vào tệp phụ thuộc/bổ sung và thêm tệp Now you should have something like this Nếu tìm thêm trường hợp tôi không thể biên dịch, tôi sẽ cập nhật bài đăng hoặc liên hệ với tôi vì có thể cực kỳ bực bội để tìm lỗi như thế này ...

Các vấn đề liên quan