Visual Studio 2010: свойства. Параметры нарушены после перенаправления проекта на.NET Framework 3.5
Я изменил проект на целевой
- .NET Framework 3.5
скорее, чем
- .NET Framework 4.
Проект теперь падает, когда я пытаюсь получить доступ к настройкам:
Settings.Designer.cs:
return ((global::System.Drawing.Font)(this["DefaultFont"]));
За исключением `global::System.Drawing.Font)(this["DefaultFont"]));
Произошла ошибка при создании обработчика раздела конфигурации для applicationSettings/GrobManagementSystem.Properties.Settings: не удалось загрузить файл или сборку 'System, Version=4.0.0.0, Culture= нейтральный, PublicKeyToken=b77a5c561934e089' или одной из ее зависимостей. Система не может найти указанный файл. (C:\Develop\Contoso\GrobFrobber выделилтекст\GrobManagementSystem\GrobManagementSystem\bin\Debug\GrobManagementSystem.vshost.exe.config строка 8)
Проблема в том, что MyApp.exe.config содержит ссылки на.NET Framework 4.0 (4.0.0.0
):
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="userSettings"
type="System.Configuration.UserSettingsGroup, System,
Version=4.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089">
Этот файл создается при каждой сборке и основан на содержимом Settings.settings
(XML-файл, который не упоминает 4.0.0.0
в любом месте):
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="GrobManagementSystem.Properties" GeneratedClassName="Settings">
<Profiles />
<Settings>
Там также есть файл с кодом настроек (Settings.Designer.cs
), что также не упоминает 4.0.0.0
в любом месте:
namespace GrobManagementSystem.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
Почему генерируется MyApp.exe.config
ссылаясь на.NET 4.0 (т.е. 4.0.0.0
), когда проект не 4.0:
а дизайнеры не 4.0?
И вопрос побольше:
Как перенести проект в .NET Framework 3.5 из .NET Framework 4.0?
1 ответ
Нашел ответ, удали app.config
,
app.config
автоматически создается на основе settings.settings
, Visual Studio не создавал его, хотя его нужно было обновить.
Примечание. Очистка и восстановление не заставляет Visual Studio очищать и восстанавливать его.
Удалив его, чтобы заставить Visual Studio пересобрать, он исправил это.