Question

J'ai une application qui utilise Oracle.DataAccess pour se connecter. J'ai déjà découvert que l'empreinte peut être réduite en utilisant ODAC 11 avec le déploiement xcopy. C'est déjà une grosse victoire.

Idéalement, nous aimerions ne pas avoir à modifier les variables de chemin d'accès et à placer tous les fichiers ODAC dans un sous-répertoire situé sous le dossier de l'application. Est-il possible de faire cela sans changer la variable PATH? Est-il possible de définir une variable temporaire PATH? Pouvons-nous copier tous les fichiers nécessaires dans le dossier de l’application?

L'idée générale est que nous voulons isoler autant que possible nos fichiers ODAC des autres applications pouvant s'exécuter sur le même client.

Était-ce utile?

La solution

System.Environment.SetEnvironmentVariable permet de modifier le processus. bloc environnement. Si cela suffit notoirement à PITA Oracle, cela ne fait aucun doute. ;)

Autres conseils

As Marque suggéré , votre application peut toujours modifier la variable d'environnement du processus en cours. Notez que vous devrez évidemment le faire avant tout appel ODP .NET.

Notez également que si vous n'avez besoin que des fonctionnalités ODP .NET pures, je veux dire par là que vous n'en avez spécifiquement pas besoin:

Si vous êtes dans ce cas, vous ne pouvez distribuer que Oracle Instant Client avec votre application. Voir cette question pour plus de détails.

La modification de la variable Environment est une tâche délicate, mais je pense que pour la complétude académique résolution intégrale d'assemblage est en fait le" bon "moyen de résoudre ce problème, même s'il s'agit de davantage de code.

Comme mentionné précédemment, cette question StackOverflow explique comment vous pourriez atteindre votre objectif. Cette réponse est très bonne. J'ai commenté dans cette réponse que je pouvais utiliser une chaîne de connexion Easy Connect et le même binaire sur ma machine de production et sur ma machine de développement en copiant simplement les DLL Instant Client Lite et Oracle.DataAccess.dll dans le dossier de l'application de la production. machine. Le client Oracle complet est installé sur ma machine de développement. De cette façon, il n'est pas du tout nécessaire de modifier les instructions de chemin.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top