Mam aplikację VB6, która wywołuje zestaw .NET, który odwołuje się do ustawień z pliku app.config. Domyślnie .NET szuka pliku konfiguracyjnego nazwanego po aplikacji VB6. Jak mogę go przekierować, aby użyć innej nazwy pliku konfiguracyjnego? To musi stać się domyślnym plikiem konfiguracyjnym, aby np. Ustawienia WCF są odczytywane z niego.Zmiana nazwy pliku konfiguracji aplikacji .NET
Odpowiedz
Nie można tego zmienić. Każda instancja AppDomain ma stały app.config ustawiony za pomocą instancji AppDomainSetup, gdy tworzona jest nowa domena aplikacji. Mimo, że można uzyskać informacje o ustawieniach za pośrednictwem AppDomain.SetupInformation, w tym momencie skutecznie stała się tylko do odczytu. Biorąc to pod uwagę, jedną z opcji może być utworzenie nowej domeny aplikacji z funkcji Główna i skonfigurowanie domeny do użycia wymaganego app.config.
Dzięki, to właśnie zrobiłem na końcu. Główna aplikacja (.NET) ustawia zmienne środowiskowe APPDOMAIN_MANAGER_TYPE i APPDOMAIN_MANAGER_ASM w celu spowodowania użycia niestandardowego AppDomainManager, co zastępuje InitializeNewDomain w celu ustawienia właściwości AppDomainSetup.ConfigurationFile wskazującej na udostępniony plik .exe.config. Łatwo, kiedy wiesz jak! –
można zmusić aplikację do odczytu konkretny plik konfiguracyjny używając
System.Configuration.ConfigurationManager.OpenExeConfiguration(PATH_TO_CONFIG);
Dzięki. Potrzebuję tego, aby stać się "domyślnym" plikiem app.config, aby np. Ustawienia WCF są odczytywane z niego. Zaktualizuję pytanie, by było bardziej szczegółowe. –
Rozważenia konfigurację w XML odcinkach obiektu.
AppDomain.CurrentDomain.SetData ("APP_CONFIG_FILE", @configFile);
więcej na ten temat tutaj: http://weblogs.asp.net/israelio/archive/2005/01/10/349825.aspx – russau
Ponieważ istnieje już system definiujący "domyślny" plik konfiguracyjny, co próbujesz zrobić, aby go zmienić? –
Nie chcę, aby nazwa pochodziła od aplikacji VB6. Mam kilka z nich i chciałbym uniknąć jednej kopii pliku konfiguracyjnego dla każdego, ponieważ ustawienia nie są tak naprawdę specyficzne dla każdej aplikacji, ale dla zestawu .NET. –
W takim przypadku prawdopodobnie nie trzeba używać App.config, aby rozwiązać problem, ponieważ jego celem jest ustawienie poszczególnych aplikacji. Jeśli ustawienia mają być takie same dla zespołu, niezależnie od aplikacji, czy nie są to tylko wartości zakodowane na stałe? –