Faccio una domanda forse stupida: ho un piccolo progetto DotNet Windows Form che modifico e compilo da due diversi PC (lavoro e casa), in una funzione utilizzo Microsoft.Office.Interop per aprire un foglio Excel.

Il problema è che Excel è installato solo sul PC dell'ufficio e non a casa quindi la compilazione riesce solo sul primo.

E' possibile secondo voi in qualche modo escludere quella funzione quando compilo da casa?
Esiste una direttiva del preprocessore che mi dica "se esiste questa classe/libreria" compila se no lancia un messaggio?

Grazie!
Non so se esiste una direttiva di quel tipo. Che ne dici di includere la dll dinamicamente in base a un'impostazione di configurazione (che avrai nel db o nel web.config)?
Puoi farlo con la classe Assembly e il metodo Load (forse ci vuole qualcosa nel web.config)

Ormai programmano tutti... ma la professionalità appartiene a pochi
Prima di tutto grazie per la risposta!

Il progetto non è Asp.Net ma WindowsForms e il problema è prima di tutto di VisualStudio, in quanto non riesco proprio a compilare se mi trovo sul PC senza Office...

La tua proposta è comunque interessante: includendo la libreria dinamicamente non richiamerei direttamente la classe nel codice ma un oggetto? Hai qualche esempio?

Grazie!
Ho trovato questo esempio che usa la Reflection:
public static void Main()
    {
        // Use the file name to load the assembly into the current 
        // application domain.
        Assembly a = Assembly.Load("example");
        // Get the type to use.
        Type myType = a.GetType("Example");
        // Get the method to call.
        MethodInfo myMethod = myType.GetMethod("MethodA");
        // Create an instance. 
        object obj = Activator.CreateInstance(myType);
        // Execute the method.
        myMethod.Invoke(obj, null);
    }


Fonte: https://msdn.microsoft.com/en-us/library/25y1ya39(v=vs.110).aspx

Ormai programmano tutti... ma la professionalità appartiene a pochi

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.