2011-06-20 11 views
16

W mojej aplikacji używam ustawień użytkownika zgodnie z wyjaśnieniami here. Potem zdałem sobie sprawę, że w VS 2010 używałem .NET 4.0, podczas gdy tylko .NET 2.0 było wystarczające.Błąd ustawień aplikacji po zmianie struktury docelowej projektu

Kiedy zmienił ramy i budowania projektu, w moim kodu ilekroć mam dostępu teraz ustawienie, pojawia się następujący błąd:

An error occurred creating the configuration section handler for userSettings/Vegi_Manager.Properties.Settings: Could not load file or assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified. (C:\Users\AKSHAY\AppData\Local\Microsoft\Vegi-Manager.vshost.exe_Url_44035dlkzpfaaauiqsd4nh3f0l0yq0tv\1.0.0.0\user.config line 5)

to dla nieznanych przyczyn z wykorzystaniem wersji 4.0. Proszę zasugerować, co mam zrobić.

Odpowiedz

19

Sprawdź swój app.config może nadal masz System.Configuration.UserSettingsGroup lub coś w tym rodzaju wersja 4 nadal czai się wokół, trzeba będzie ręcznie edytować i uzyskać istotne dla wersji 2

+0

Miałem to w mojej app.config: sectionGroup name = "userSettings" type = "System.Configuration.UserSettingsGroup, System, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089" –

+0

@ V4Vendetta i zmieniłem na wersja 2, jeśli zmienię 2, która pokazuje Nie można załadować pliku lub zespołu "System, wersja = 2.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089" jak mogę to rozwiązać. – Manoj

4

Jest prawdopodobne, że masz odniesienie do zestawu .NET 4 w twoim rozwiązaniu - jeśli otworzysz okno "Dodaj odniesienie" w swoim rozwiązaniu i sprawisz, że okno będzie nieco szersze, zobaczysz, że są kolumny dla wersji i środowiska wykonawczego ... kiedy tworzyłeś swoje rozwiązania Docelowy .NET 4, możesz dodać odniesienie do złożenia, które wymaga środowiska wykonawczego .NET 4, a teraz zmieniłeś na .NET 2, musisz zamienić go na zespół wymagający tylko środowiska wykonawczego .NET 2.

Oczywiście, jeśli użyłeś czegoś z zestawu .NET 4, który nie istniał w .NET 2, będziesz musiał ponownie napisać, aby go nie używać lub zmienić zdanie i zrobić to w .NET 4 zamiast tego!

+0

Dzięki Sohnee, To była wina w app.config –

2

jeśli otworzysz swój app.config, upewnij się, że wszystkie sekcje konfiguracyjne są kierowane .NET Framework 2 nie 4

jeśli opublikować app.config do mnie mogę pomóc więcej

3

mogę dodać tutaj musisz zmienić szczegóły/odniesienia app.config do poprzedniego środowiska .NET (w tym przypadku 4.0.0.0) do nowej wersji systemu .NET refence (w tym przypadku 2.0.0.0, która jest taka sama dla .NET 3.5 !)

9

Wystąpił ten sam problem, ponieważ zacząłem opracowywać dodatek do programu Outlook w Visual Studio 2010, kierując go na platformę .NET 4.0, a następnie decydując aby zmienić go na framework 3.5. Wygląda na to, że Visual Studio nie było wystarczająco inteligentne, aby zaktualizować mój plik app.config, który wciąż miał odniesienie do 4.0.

Jak sugerowały poprzednie plakaty (będę trochę bardziej szczegółowy), ręcznie edytując app.config, aby zmienić wszystkie odniesienia z "Wersja = 4.0.0.0" na "Wersja = 2.0.0.0" (podobno .NET 3.5 nadal używa 2.0.0.0) w elemencie <sectionGroup> i jego elementach potomnych, udało mi się przywrócić ustawienia w moim przypadku.