|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jul 2008
Messaggi: 1426
|
[C#]Compilazione di progetti creati da altri
Molto spesso, scaricando da internet progetti creati da altre persone mi trovo di fronte a molti errori durante la fase di compilazione: ma come è possibile che allora i programmatori che hanno creato il software riuscissero a compilarlo?
L'ultimo caso è stato con il codice sorgente di WatiN che mi serve per poter interagire con Firefox. Dunque, prima di tutto mi si genera un errore poichè manca un file .snk . Tommino, gentilmente, mi ha risposto dicendomi che potevo ricrearlo dalle proprità del progetto. Così sono andatto su Progetto\Proprietà di <nome progetto>\Firma ed ho creato un nuovo file .snk (tra l'altro senza password, a cosa serve?). A questo punto spero di poter compilare, ma niente durante la compilazione mi viene ancora detto che il file non esiste! ![]() ![]() ![]() Ora apparentemente il file .snk lo trova, il problema è che il progetto presenta ben 57 errori + un errore (che suppongo generi gli altri) che dice che è impossibile trovare il riferimento System.Core. A questo punto credo che il problema sia che sto lavorando in .NET 3.5 con visual studio 2008. Quindi? Che faccio? Devo scaricare l'sdk 2.0? Potrebbe darmi problemi la sua installazione? O invece il problema è un altro? |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jan 2005
Città: Siena
Messaggi: 1310
|
Il fatto che il file snk sia senza password non vuol dire nulla, quel file serve a firmare l'assembly, e il meccanismo è valido anche se l'snk non è protetto. Inoltre il fatto che tu abbia installato vs2008 col framework 3.5 non significa che non puoi utilizzare versioni precedenti.
Secondo me il problema è che hai una versione differente di System.Core rispetto a quella richiesta dal progetto. Dovresti controllare nella GAC |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
|
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jul 2008
Messaggi: 1426
|
Compilando per 3.5 quest'errore scompare ma ne rimangono 57.
![]() Eheh molti errori sembrano simili... Qualche suggerimento? Errore 19 Impossibile applicare l'indicizzazione con [] a un'espressione di tipo 'WatiN.Core.UtilityClasses.LazyList<int>' 64 29 Errore 25 Impossibile applicare l'indicizzazione con [] a un'espressione di tipo 'WatiN.Core.UtilityClasses.LazyList<int>' 82 29 Errore 31 Impossibile applicare l'indicizzazione con [] a un'espressione di tipo 'WatiN.Core.UtilityClasses.LazyList<int>' 98 32 Errore 33 Impossibile applicare l'indicizzazione con [] a un'espressione di tipo 'WatiN.Core.UtilityClasses.LazyList<int>' 101 32 Errore 36 Impossibile applicare l'indicizzazione con [] a un'espressione di tipo 'WatiN.Core.UtilityClasses.LazyList<int>' 104 32 Errore 1 'WatiN.Core.UtilityClasses.LazyList<T>' non contiene un costruttore che accetta argomenti '1' 34 24 Errore 8 'WatiN.Core.UtilityClasses.LazyList<T>' non contiene un costruttore che accetta argomenti '1' 47 24 Errore 14 'WatiN.Core.UtilityClasses.LazyList<T>' non contiene un costruttore che accetta argomenti '1' 60 24 Errore 21 'WatiN.Core.UtilityClasses.LazyList<T>' non contiene un costruttore che accetta argomenti '1' 78 24 Errore 28 'WatiN.Core.UtilityClasses.LazyList<T>' non contiene un costruttore che accetta argomenti '1' 96 24 Errore 40 'WatiN.Core.UtilityClasses.LazyList<T>' non contiene un costruttore che accetta argomenti '1' 112 24 Errore 46 'WatiN.Core.UtilityClasses.LazyList<T>' non contiene un costruttore che accetta argomenti '1' 132 24 Errore 42 'WatiN.Core.UtilityClasses.LazyList<int>' non contiene una definizione di 'GetEnumerator' e non è stato trovato alcun metodo di estensione 'GetEnumerator'che accetta un primo argomento di tipo 'WatiN.Core.UtilityClasses.LazyList<int>'. Probabilmente manca una direttiva using o un riferimento a un assembly. 114 48 Errore 3 'WatiN.Core.UtilityClasses.LazyList<int>' non contiene una definizione di 'Count' e non è stato trovato alcun metodo di estensione 'Count'che accetta un primo argomento di tipo 'WatiN.Core.UtilityClasses.LazyList<int>'. Probabilmente manca una direttiva using o un riferimento a un assembly. 36 37 Errore 5 'WatiN.Core.UtilityClasses.LazyList<int>' non contiene una definizione di 'Count' e non è stato trovato alcun metodo di estensione 'Count'che accetta un primo argomento di tipo 'WatiN.Core.UtilityClasses.LazyList<int>'. Probabilmente manca una direttiva using o un riferimento a un assembly. 39 37 Errore 10 'WatiN.Core.UtilityClasses.LazyList<int>' non contiene una definizione di 'Count' e non è stato trovato alcun metodo di estensione 'Count'che accetta un primo argomento di tipo 'WatiN.Core.UtilityClasses.LazyList<int>'. Probabilmente manca una direttiva using o un riferimento a un assembly. 49 37 Errore 11 'WatiN.Core.UtilityClasses.LazyList<int>' non contiene una definizione di 'Count' e non è stato trovato alcun metodo di estensione 'Count'che accetta un primo argomento di tipo 'WatiN.Core.UtilityClasses.LazyList<int>'. Probabilmente manca una direttiva using o un riferimento a un assembly. 52 37 Errore 48 'WatiN.Core.UtilityClasses.LazyList<int>' non contiene una definizione di 'CopyTo' e non è stato trovato alcun metodo di estensione 'CopyTo'che accetta un primo argomento di tipo 'WatiN.Core.UtilityClasses.LazyList<int>'. Probabilmente manca una direttiva using o un riferimento a un assembly. 135 18 Errore 2 'WatiN.Core.UtilityClasses.LazyList<int>' è inaccessibile a causa del livello di protezione 34 28 Errore 9 'WatiN.Core.UtilityClasses.LazyList<int>' è inaccessibile a causa del livello di protezione 47 28 Errore 15 'WatiN.Core.UtilityClasses.LazyList<int>' è inaccessibile a causa del livello di protezione 60 28 Errore 22 'WatiN.Core.UtilityClasses.LazyList<int>' è inaccessibile a causa del livello di protezione 78 28 Errore 29 'WatiN.Core.UtilityClasses.LazyList<int>' è inaccessibile a causa del livello di protezione 96 28 Errore 41 'WatiN.Core.UtilityClasses.LazyList<int>' è inaccessibile a causa del livello di protezione 112 28 Errore 47 'WatiN.Core.UtilityClasses.LazyList<int>' è inaccessibile a causa del livello di protezione 132 28 Errore 57 'WatiN.Core.IE' non contiene una definizione per 'GetMajorIEVersion' 639 20 Errore 30 'WatiN.Core.FireFox' non contiene una definizione per 'CurrentProcess' 97 33 Errore 32 'WatiN.Core.FireFox' non contiene una definizione per 'CurrentProcess' 100 33 Errore 20 'WatiN.Core.DialogHandlers.DialogHandlerHelper' non contiene una definizione per 'GetDialogHandlers' 72 54 Errore 16 'WatiN.Core.DialogHandlers.DialogHandlerHelper' non contiene una definizione di 'HandlePossibleCandidate' e non è stato trovato alcun metodo di estensione 'HandlePossibleCandidate'che accetta un primo argomento di tipo 'WatiN.Core.DialogHandlers.DialogHandlerHelper'. Probabilmente manca una direttiva using o un riferimento a un assembly. 61 33 Errore 7 'WatiN.Core.Actions.HighlightAction' non contiene una definizione di 'On' e non è stato trovato alcun metodo di estensione 'On'che accetta un primo argomento di tipo 'WatiN.Core.Actions.HighlightAction'. Probabilmente manca una direttiva using o un riferimento a un assembly. 42 29 Errore 17 'WatiN.Core.Actions.HighlightAction' non contiene una definizione di 'On' e non è stato trovato alcun metodo di estensione 'On'che accetta un primo argomento di tipo 'WatiN.Core.Actions.HighlightAction'. Probabilmente manca una direttiva using o un riferimento a un assembly. 62 23 Errore 37 'WatiN.Core.Actions.HighlightAction' non contiene una definizione di 'On' e non è stato trovato alcun metodo di estensione 'On'che accetta un primo argomento di tipo 'WatiN.Core.Actions.HighlightAction'. Probabilmente manca una direttiva using o un riferimento a un assembly. 105 23 Errore 45 'WatiN.Core.Actions.HighlightAction' non contiene una definizione di 'On' e non è stato trovato alcun metodo di estensione 'On'che accetta un primo argomento di tipo 'WatiN.Core.Actions.HighlightAction'. Probabilmente manca una direttiva using o un riferimento a un assembly. 127 29 Errore 51 'WatiN.Core.Actions.HighlightAction' non contiene una definizione di 'On' e non è stato trovato alcun metodo di estensione 'On'che accetta un primo argomento di tipo 'WatiN.Core.Actions.HighlightAction'. Probabilmente manca una direttiva using o un riferimento a un assembly. 150 23 Errore 52 'WatiN.Core.Actions.HighlightAction' non contiene una definizione di 'On' e non è stato trovato alcun metodo di estensione 'On'che accetta un primo argomento di tipo 'WatiN.Core.Actions.HighlightAction'. Probabilmente manca una direttiva using o un riferimento a un assembly. 151 23 Errore 53 'WatiN.Core.Actions.HighlightAction' non contiene una definizione di 'On' e non è stato trovato alcun metodo di estensione 'On'che accetta un primo argomento di tipo 'WatiN.Core.Actions.HighlightAction'. Probabilmente manca una direttiva using o un riferimento a un assembly. 152 23 Errore 18 'WatiN.Core.Actions.HighlightAction' non contiene una definizione di 'Off' e non è stato trovato alcun metodo di estensione 'Off'che accetta un primo argomento di tipo 'WatiN.Core.Actions.HighlightAction'. Probabilmente manca una direttiva using o un riferimento a un assembly. 63 23 Errore 38 'WatiN.Core.Actions.HighlightAction' non contiene una definizione di 'Off' e non è stato trovato alcun metodo di estensione 'Off'che accetta un primo argomento di tipo 'WatiN.Core.Actions.HighlightAction'. Probabilmente manca una direttiva using o un riferimento a un assembly. 106 23 Errore 39 'WatiN.Core.Actions.HighlightAction' non contiene una definizione di 'Off' e non è stato trovato alcun metodo di estensione 'Off'che accetta un primo argomento di tipo 'WatiN.Core.Actions.HighlightAction'. Probabilmente manca una direttiva using o un riferimento a un assembly. 109 23 Errore 54 'WatiN.Core.Actions.HighlightAction' non contiene una definizione di 'Off' e non è stato trovato alcun metodo di estensione 'Off'che accetta un primo argomento di tipo 'WatiN.Core.Actions.HighlightAction'. Probabilmente manca una direttiva using o un riferimento a un assembly. 153 23 Errore 55 'WatiN.Core.Actions.HighlightAction' non contiene una definizione di 'Off' e non è stato trovato alcun metodo di estensione 'Off'che accetta un primo argomento di tipo 'WatiN.Core.Actions.HighlightAction'. Probabilmente manca una direttiva using o un riferimento a un assembly. 154 23 Errore 56 'WatiN.Core.Actions.HighlightAction' non contiene una definizione di 'Off' e non è stato trovato alcun metodo di estensione 'Off'che accetta un primo argomento di tipo 'WatiN.Core.Actions.HighlightAction'. Probabilmente manca una direttiva using o un riferimento a un assembly. 155 23 Errore 26 'WatiN.Core.Actions.HighlightAction' non contiene una definizione di 'Highlight' e non è stato trovato alcun metodo di estensione 'Highlight'che accetta un primo argomento di tipo 'WatiN.Core.Actions.HighlightAction'. Probabilmente manca una direttiva using o un riferimento a un assembly. 84 23 Errore 27 'WatiN.Core.Actions.HighlightAction' non contiene una definizione di 'Highlight' e non è stato trovato alcun metodo di estensione 'Highlight'che accetta un primo argomento di tipo 'WatiN.Core.Actions.HighlightAction'. Probabilmente manca una direttiva using o un riferimento a un assembly. 85 23 Errore 4 'WatiN.Core.Actions.HighlightAction' non contiene un costruttore che accetta argomenti '1' 39 35 Errore 12 'WatiN.Core.Actions.HighlightAction' non contiene un costruttore che accetta argomenti '1' 58 29 Errore 23 'WatiN.Core.Actions.HighlightAction' non contiene un costruttore che accetta argomenti '1' 80 29 Errore 34 'WatiN.Core.Actions.HighlightAction' non contiene un costruttore che accetta argomenti '1' 102 29 Errore 43 'WatiN.Core.Actions.HighlightAction' non contiene un costruttore che accetta argomenti '1' 122 35 Errore 49 'WatiN.Core.Actions.HighlightAction' non contiene un costruttore che accetta argomenti '1' 143 29 Errore 6 'WatiN.Core.Actions.HighlightAction' è inaccessibile a causa del livello di protezione 39 39 Errore 13 'WatiN.Core.Actions.HighlightAction' è inaccessibile a causa del livello di protezione 58 33 Errore 24 'WatiN.Core.Actions.HighlightAction' è inaccessibile a causa del livello di protezione 80 33 Errore 35 'WatiN.Core.Actions.HighlightAction' è inaccessibile a causa del livello di protezione 102 33 Errore 44 'WatiN.Core.Actions.HighlightAction' è inaccessibile a causa del livello di protezione 122 39 Errore 50 'WatiN.Core.Actions.HighlightAction' è inaccessibile a causa del livello di protezione 143 33 |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Jul 2008
Messaggi: 1426
|
Ops
![]() Però scusa è un riferimento a un file del progetto... Cioè perchè distribuiscono codice errato?? Mi pare strano. Visto che il codice nel 99% dei casi il programmatore che l'ha creato riusciva a compilarlo (poichè compare una versione release del progetto e dubito che sia stato modificato in seguito) non è che è un problema della mia versione di visual studio? Ultima modifica di Mattyfog : 28-05-2010 alle 18:55. |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Jul 2008
Messaggi: 1426
|
Il problema potrebbe essere dovuto al fatto che io, avendo la versione express, non posso aprire soluzioni multiprogetto e che quindi in fase di compilazione ho degli errori perchè non posso accedere a un progetto?
Qualcuno di voi con Visual Studio non express potrebbe provare a compilarlo? ![]() |
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Quote:
![]() Non avendo tu le varie soluzioni caricate, i riferimenti devi metterli a mano.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Jul 2008
Messaggi: 1426
|
Non c'è nessuno così gentile da scaricare questo file http://downloads.sourceforge.net/pro...89-net-2.0.zip andare nel codice sorgente (cartellar Source\src) e nel progetto core modificare il metodo GetExecutablePath() del file Firefox.cs da private static string GetExecutablePath() a public string GetExecutablePath() (non dovrebbe generare alcun problema no?) e poi inviarmi file a mattyfog@tele2.it ? Grazie infinite
EDIT: se no come posso mettere i riferimenti a mano? Ultima modifica di Mattyfog : 31-05-2010 alle 14:23. |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Feb 2003
Città: Stockholm (SE)
Messaggi: 1343
|
per caso, hai solo lontanamente idea della semantica dietro al cambio da te proposto?
|
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Jul 2008
Messaggi: 1426
|
Purtroppo il mio studio sui libri di C# (iniziato 3 giorni fa) per ora arriva solo ai tipi di variabili
![]() Non ho precisamente idea di cosa possa cambiare, ciò che so è che dopo dovrei poter eseguire l'override della funzione. Ma questo cambiamento al codice quindi è possibile o è un gran errore? |
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Feb 2003
Città: Stockholm (SE)
Messaggi: 1343
|
|
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Jul 2008
Messaggi: 1426
|
Penso che basti la prima riga a motivare l'impossibilità del cambiamento:
Static classes and class members are used to create data and functions that can be accessed without creating an instance of the class Mmm dunque, se va mantenuto static non posso effettuarne l'override. E non esiste nessun modo, modificando nel codice sorgente di WatiN solo il metodo GetExecutablePath(), per poterne effettuare l'override? Il punto è che se anche una di voi buone anime mi compilasse WatiN vorrei fare in modo da poter modificare GetExecutablePath() senza dover richiedere il vostro aiuto per compilare il progetto. Per questo pensavo che un override potesse fare al caso mio. Altrimenti forse dovrei fare in modo che GetExecutablePath() faccia riferimento a una libreria che creo io e che quindi posso modificare quando voglio. Altre idee? (nel caso l'unica soluzione sia l'ultima mia proposta, posso modificare il progetto aggiungendo un riferimento a una mia dll o voi dopo, aprendo il progetto che include il riferimento alla mia dll, avrete un errore in fase di compilazione perchè l'ho aperto con il mio Visual Studio express che quindi potrebbe aver danneggiato il progetto che, ricordo, è multisoluzione?) |
![]() |
![]() |
![]() |
#14 | |
Senior Member
Iscritto dal: Jan 2005
Città: Siena
Messaggi: 1310
|
Quote:
|
|
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Jul 2008
Messaggi: 1426
|
Perchè questo povero metodo richiama un altro metodo per cercare il percorso di installazione di firefox prendendolo dal registro di sistema mentre invece questo percorso ho bisogno di fornirglielo io perchè uso Firefox Portable all'interno dell'applicazione (e Firefox Portable come dice il nome è una versione senza installazione).
|
![]() |
![]() |
![]() |
#16 | |
Senior Member
Iscritto dal: Jan 2005
Città: Siena
Messaggi: 1310
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: Jul 2008
Messaggi: 1426
|
Mmm credevo che con un override la libreria avrebbe usato il mio metodo... Mmm...
Quindi adotto la soluzione del inserire un riferimento a una mia libreria? |
![]() |
![]() |
![]() |
#18 |
Senior Member
Iscritto dal: Feb 2003
Città: Stockholm (SE)
Messaggi: 1343
|
"buildati" sta benedetta libreria, attaccala al tuo progetto, crea un wrapper intorno a questa classe e cambi l'implemetazione del metodo
![]() |
![]() |
![]() |
![]() |
#19 |
Senior Member
Iscritto dal: Jul 2008
Messaggi: 1426
|
Libreria creata.
Però mi potresti spiegare meglio cosa intendi con creare un wrapper? EDIT: Intendi semplicemente di inserire un richiamo mio metodo dentro GetExecutablePatch()? Se si non posso farlo poichè come detto non avendo visual studio completo non posso compilare il progetto. Ultima modifica di Mattyfog : 31-05-2010 alle 17:10. |
![]() |
![]() |
![]() |
#20 |
Senior Member
Iscritto dal: Jul 2008
Messaggi: 1426
|
Faccio un up nella speranza di trovare un'anima pia che mi compili il progetto.
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:05.