Visual Studio 2010:将项目重新定位到.NET Framework 3.5后,Properties.Settings中断了

时间:2011-11-15 18:45:03

标签: .net visual-studio-2010 .net-3.5

我已将项目更改为目标

  • .NET Framework 3.5

而不是

  • .NET Framework 4。

每当我尝试访问设置时,项目现在都会崩溃:

Settings.Designer.cs:

      return ((global::System.Drawing.Font)(this["DefaultFont"]));

除了`global :: System.Drawing.Font)(这[[DefaultFont“]));

  

为applicationSettings / GrobManagementSystem.Properties.Settings创建配置节处理程序时出错:无法加载文件或程序集'System,Version = 4.0.0.0,Culture = neutral,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(在任何地方未提及4.0.0.0的xml文件)的内容:

<?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;
            }
        }

当项目不是4.0时,为什么生成的MyApp.exe.config引用.NET 4.0(即4.0.0.0):

enter image description here

而设计师不是4.0?

更大的问题:

  

如何从 .NET Framework 4.0 将项目重新定位到 .NET Framework 3.5

1 个答案:

答案 0 :(得分:3)

Found the answer,删除app.config

app.config会根据settings.settings自动创建。 Visual Studio没有构建它,即使它需要更新。

注意:清理和重建不会强制Visual Studio清理并重建它

删除它,强制Visual Studio重建,修复它。