Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Project Dependency Warning

Îåêßíçóå áðü ôï ìÝëïò egeorge. Τελευταία δημοσίευση από το μέλος George J. Capnias στις 13-01-2006, 23:36. Υπάρχουν 8 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  12-01-2006, 18:10 8613

    Project Dependency Warning

    Θα ήθελα την βοήθεια στο εξής πρόβλημα,

     
    Tο solution στο οποίο δουλεύω αποτελείται από 3 project:

    1. main_project (vb.net)
    2. csharp_project (c#)
    3. common_project (vb.net)


    Το main_project έχει reference το csharp_project και το common_project, ενώ το csharp_project έχει reference το common_project.

    Στο project οι αλλαγές γίνονται κατά κύριο λόγο στο csharp_project, ενώ στο common_project σχεδόν ποτέ.

     
    Τα project common_project και csharp_project κάνουν complile κανονικά. Στο main_project υπάρχει το ακόλουθο warning

     Warning: The dependency common_project, Version=1.0.2187.21028, Culture=neutral' in project ' main_project ' cannot be copied to the run directory because it would overwrite the reference common_project, Version=0.0.0.0, Culture=neutral'.

     
    Πως μπορώ να ξεπεράσω το πρόβλημα αυτό?

    Ευχαριστώ.


    Θρυλικός Προγραμματιστής
  •  12-01-2006, 19:25 8623 σε απάντηση της 8613

    Απ: Project Dependency Warning

    Η αναφορά που κάνεις στο main_project από κάποιο από τα άλλα δύο - σε αυτό που βλέπεις το warning - δεν είναι σε επίπεδο project αλλά στο dll που βγαίνει από το project.

    Ένα άλλο που πρέπει να προσέξεις είναι όλα τα projects να έχουν το αρχείο AsseblyInfo, που περιέχει την έκδοση του assembly.

     

    George J.

     


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  13-01-2006, 11:31 8651 σε απάντηση της 8613

    Απ: Project Dependency Warning

    Τα references είναι στα dll των projects.

    AssemblyIinfo δεν έχουν τα project, και επίσης ένα ακόμη πρόβλημα το οποίο προκύπτει είναι ότι παρόλο που κάνει compile το project στον object viewer το dll με το project έχουν διαφορετικές classes, σαν να μην έχει ενημερωθεί.


    Θρυλικός Προγραμματιστής
  •  13-01-2006, 14:46 8656 σε απάντηση της 8651

    Απ: Project Dependency Warning

    Δοκίμασε να βγάλεις τα file references (απ' αυθείας στις dlls) και να τα αντικαταστήσεις με project references. Είναι το τρίτο tab που εμφανίζεται στο Add reference dialog box.


    Χρήστος Γεωργακόπουλος
  •  13-01-2006, 15:29 8658 σε απάντηση της 8613

    Απ: Project Dependency Warning

    Ναι δοκίμασα και project reference, αλλά δεν λύθηκε το πρόβλημα.

    Δοκίμασα και το εξής που ίσως βοηθήσει:

    Το project common_project έχει reference τα dll memberole.dll και Microsoft.ApplicationBlocks.Data.dll. Ομοίως και τo main_project.

    Αφαιρώντας το reference common_project από το main_project, και προσθέτοντας το πάλι, προστέθηκε στα reference path και φάκελος bin του common_project λόγω dependencies του common_project με τα dll memberole.dll και Microsoft.ApplicationBlocks.Data.dll.

    Κάνοντας πάλι compile, το project main_project δεν έβλεπε τις classes των memberole.dll και Microsoft.ApplicationBlocks.Data.dll.

    Κάνοντας την ίδια διαδικασία και για τα references αυτά το project έρχεται στην ίδια κατάσταση.

    Πως μπορώ να αποφύγω όλo αυτό το μπλέξιμο των references;

    Θρυλικός Προγραμματιστής
  •  13-01-2006, 16:19 8662 σε απάντηση της 8658

    Απ: Project Dependency Warning

    Κάπου πρέπει να σου έχει ξεμείνει ένα file reference. Δοκίμασε την εξής διαδικασία:

    1. Άνοιξε το solution στο visual studio
    2. Κλείσε όλα τα ανοικτά αρχεία που έχεις (κώδικα και visual designers)
    3. Κλείσε το visual studio
    4. Σκότωσε το ASP.Net process με τον task manager (αν κάποιο από τα 3 projects είναι web project)
    5. Ξαναάνοιξε το solution στο visual studio
    6. Σβήσε όλα τα references μεταξύ των projects από το MainProject (δηλαδή το reference για το CSharpProject και το CommonProject)
    7. Σβήσε από το CSharpProject το reference για το CommonProject
    8. Στο CSharpProject κάνε add project reference (όχι file reference και browse για το dll) το CommonProject
    9. Στο MainProject κάνε add project reference (όχι file reference και browse για το dll) το CommonProject και το CSharpProject.
    10. Κάνε rebuild
    11. Πες μας αν λύθηκε το πρόβλημα

    Χρήστος Γεωργακόπουλος
  •  13-01-2006, 17:08 8664 σε απάντηση της 8613

    Απ: Project Dependency Warning

    Κάνει compile κανονικά τώρα. Ευχαριστώ για την πολύτιμη βοήθεια.

    Δεν θα ήταν προτιμότερο τα references να γίνονται στα dll, για λόγους portability του project?

    Αυτή την στιγμή το Project έχει γίνει compile σε debug. Δεδομένου ότι δεν γίνονται πολλές αλλαγές δεν θα ήταν καλύτερα να γυρίσει σε release ?

    Ευχαριστώ.

    Θρυλικός Προγραμματιστής
  •  13-01-2006, 18:34 8665 σε απάντηση της 8664

    Απ: Project Dependency Warning

    Θα ήταν. Αν ήταν να παίζει με file references θα μπορούσες να ανοίγεις διαφορετικά solutions και να έχεις όποια projects ήθελες να δουλέψεις μόνο. Αλλά δυστυχώς δεν είναι. Τώρα αν θέλεις να βγάλεις ένα project έξω θα πρέπει να πας σε όλα που το χρησιμοποιούν και να γυρίσεις τα references. Αν θέλεις να το ξαναβάλεις μέσα, άντε πάλι από την αρχή.

    Από debug σε release και το ανάποδο μπορείς να το γυρνάς οποιαδήποτε στιγμή. Το αν θα το γυρίσεις σε κάποιο από τα δύο modes δεν έχει να κάνει με το αν γίνονται αλλαγές, αλλά με το αν θέλεις να κάνεις debug μέσα στον κώδικα των αντίστοιχων projects.

    Αν θεωρείς ότι ουσιαστικά έχεις τελιώσει με κάποιο project (υποθέτω με το common) τότε μπορείς να γυρίσεις το solution σε release, να κάνεις ένα build, να κρατήσεις την dll, να βγάλεις το project από το solution, και να γυρίσεις πλέον τα references των άλλων σε file reference. Αυτό θα σου προσφέρει ταχύτερους χρόνους ανοίγματος και κλεισίματος του studio (και λιγότερη κατανάλωση μνήμης). Αν το solution είναι ελαφρύ και δεν σε απασχολούν αυτά, μπορείς απλά να ορίσεις στον configuration manager να μην κάνει build το συγκεκριμένο project για να γλυτώσεις μόνο από το χρόνο που κάνει για build.


    Χρήστος Γεωργακόπουλος
  •  13-01-2006, 23:36 8669 σε απάντηση της 8665

    Απ: Project Dependency Warning

    Εγώ κάνω το άλλο:

    • Έχω όλα τα projects μου σε ένα solution.
    • Κάθε project έχει το AssemblyInfo.cs που έχει ορισμένη την έκδοση του assembly και με τα 4 μέρη της
    • Κάθε project που κάνει reference ένα άλλο, κάνει στο project και όχι στο assembly.

    Τι κερδίζω με αυτό:

    • Όσες αλλαγές και να κάνω σε ένα assembly δεν επιρεάζουν τα υπόλοιπα που εξαρτιούνται από αυτό, καθότι η έκδοση δεν αλλάζει.

    Βέβαια όταν αποφασίσω ότι ένα assembly πρέπει να αλλάξει έκδοσή το κάνω με το χέρι, και ταυτόχρονα ξανακάνω compile και όλα που εξαρτούνται από αυτό, αλλά ότι δεν έχω να ανησυχώ ότι πρέπει να ξανακάνω όλη την εφαρμογή deploy, αλλά μόνο αυτό που άλλαξα.

     

    George J.

     


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems