prima qualche precisazione:
la cartella 'bin' devi crearla dentro
c:\inetpub\wwwroot\mioSito
scusa per prima :quipy:
riprova ad eseguire la pagina; immagino che l'url sia
http://localhost/mioSito/myCustomerPage.aspx
prima qualche precisazione:
la cartella 'bin' devi crearla dentro
c:\inetpub\wwwroot\mioSito
scusa per prima :quipy:
riprova ad eseguire la pagina; immagino che l'url sia
http://localhost/mioSito/myCustomerPage.aspx
allora la root del sito è questa:
C:\Inetpub\wwwroot\giusti
la directori della cartella bin è:
C:\Inetpub\wwwroot\giusti\bin
all'interno della bin si trova Customers.dll, risultato della compilazione di Customers.cs di cui il codice:
ho bisogno di richiamare la class da un file default.aspx che si trova in questa cartella:Codice PHP:namespace CustomerPhoneBook {
using System;
/// <summary>
/// Summary description for subscriber.
/// </summary>
public struct subscriber {
public long CustomerID;
public String FirstName;
public String MiddleName;
public String LastName;
public Decimal Balance;
}
}
C:\Inetpub\wwwroot\giusti\admin
in testa a questo file inserisco la seguente:
<%@ Import Namespace="CustomerPhoneBook" %>
quando provo a far girare la pagina il msg di errore è:
--------------------------------------------------------------
Messaggio di errore del compilatore: CS0246: Impossibile trovare il tipo o il nome dello spazio dei nomi 'CustomerPhoneBook'. Probabilmente manca una direttiva using o un riferimento a un assembly
--------------------------------------------------------------
![]()
![]()
comunque, ammesso (ma non concesso) che riesca a farlo funzionare... non c'è un modo per rendere accessibili le mie classi a tutto il server, senza doverle replicare per ogni sito?
intanto ti offro questa:
![]()
Lupo
----
ok... funziona![]()
![]()
Adesso però rimane l'altra domanda...
posso evitare di replicare le dll per ogni sito e farle "riconoscere" all'intero server web?
Sarebbe veramente bellissimo!!!!
Lupo
----
grazie della birra eh :gren:
L'unico modo che conosco per rendere una dll visibile da tutti e' creare una dll pubblica (un shared assembly) e copiarla dentro la GAC (Global Assembly Cache), che e' in 'C:\WINDOWS\assembly', solo che ora non ricordo quali sono i parametri da passare al compilatore... devi creare una chiave pubblica, con un comando 'sn', poi modificare l'AssemblyInfo.cs, poi usare un tool che si chiama 'gacutil'...
Speriamo che qualche esperto intervenga![]()
ciao,
rob
spero anch'io....
comunque già quello che ho ottenuto adesso è molto!!!!!
Sono troppo contento!!
Adesso, uno per uno, devo re-ingegnerizzare tutti i siti (oltre a sistemare tutte le librerie che per adesso solo file aspx e nulla più). Ma il risultato sarà sicuramente eccezionale!
Ogni tanto farò un up di questo post per vedere se c'è il modo di creare dll visibili "a livello server".
Ti ringrazio di nuovo!
alla birra aggiungo
![]()
Lupo
----
Mi è venuta fame....![]()
![]()
~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.
mmmmm... proprio buona, e proprio all'ora di pranzo![]()
mi sa che stanotte, per cena, parliamo dei shared assembly :gren:
Ciao,
rob
stavo rivedendo alcune cose...
dentro la cartella
'C:\Programmi\Microsoft Visual Studio .NET\FrameworkSDK\Bin'
dovresti avere un file che si chiama 'sn.exe' (sta per Strong Name)
esegui il comando
"sn -k myStrongName.snk"
che ti crea appunto un file myStrongName.snk;
Dentro la tua classe, dopo gli 'using', scrivi:
[assembly: AssemblyKeyFile("percorso_di_myStrongName.snk")]
e ricompila il tutto. Hai appena creato un shared assembly
L'ultima cosa da fare e' trascinare la dll creata dentro la GAC, cioe' nella cartella 'C:\WINDOWS\assembly', in modo da renderla pubblica.
A questo punto sara' visibile ovunque.
Solo che non so come fare se non hai il file 'sn.exe'...
Tu che tool stai usando?
ciao,
rob
sono quasi al blocco notes![]()
... comunque il file che dici ce l'ho nella cartella...
C:\Programmi\Microsoft.NET\FrameworkSDK\Bin
dovrebbe esser lui...
la soluzione si avvicina...
ti ribecco al volo e ti chiedo:
ho compilato con successo alcune "librerie" :gren: :gren:
adesso però ho un problema (per cambiare).
dunque ho compilato il file pippo1.cs (è un esempio eh)..
namespace mylib.pippo1 {
bal bla bla
}
adesso devo compilare il file pippo2.cs che, però, ha bisogno delle classi definite in pippo1.
ho provato questo:
using mylib.pippo1;
namespace mylib.pippo2 {
bla bla bla
}
mi restituisce un errore di compilazione dicendo che è impossibile trovare lo spazio dei nomi pippo1.
come faccio a farglielo vedere?![]()
![]()
Lupo
----
mah, io quando voglio annidare i namespace uso questa notazione:
namespace1{
namespace2{
}
}
e poi li dichiaro con:
using namespace1.namespace2
prova...![]()
ciao,
rob