【发布时间】:2011-12-29 19:07:50
【问题描述】:
我已将项目更改为目标
- .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 创建配置节处理程序时出错:无法加载文件或程序集“系统,版本=4.0.0.0,文化=中性,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):
设计师不是4.0?
还有一个更大的问题:
如何将项目从 .NET Framework 4.0 重新定位到 .NET Framework 3.5?
【问题讨论】:
标签: .net visual-studio-2010 .net-3.5