Visual Studio 2010中:Properties.Settings retargetting项目的.NET Framework后破3.5

问题描述:

我已经改变了一个项目,目标Visual Studio 2010中:Properties.Settings retargetting项目的.NET Framework后破3.5

  • .NET Framework 3.5的

而不是

  • .NET Framework 4.

该项目现在崩溃每当我试图访问设置:

Settings.Designer.cs: 

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

随着全球`:: System.Drawing.Font除外)(本[ “DefaultFont”));

出错创建的applicationSettings/GrobManagementSystem.Properties.Settings配置节处理程序:无法加载文件或程序集系统,版本= 4.0.0.0,文化=中性公钥= b77a5c561934e089'或一种其依赖。该系统找不到指定的文件。 (C:\开发\ Contoso的\ GrobFrobber 强调文本 \ GrobManagementSystem \ GrobManagementSystem \ BIN \调试\ GrobManagementSystem.vshost.exe.config 8号线)

的问题是,MyApp.exe.config包含.NET框架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:

enter image description here

和设计师是不是4.0?

而更大的问题:

我如何重新定位一个项目,.NET Framework 3.5的的.NET Framework 4.0

Found the answer,删除app.config

app.config是根据settings.settings自动创建的。尽管Visual Studio需要更新,但它并没有构建它。

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

删除它,迫使Visual Studio的重建,它固定它。

+0

如果您有自己的app.config设置,请不要删除它! (.settings文件的外部,即..) - 然而,链接的答案解释说,当你从4.0恢复时,它不会提取所有的4.0构造,所以3.5怪异。在我的情况中,我只是对之前的工作提交进行了区分,并可以看到它在4.0版本中插入的内容 – KevinDeus