我已經改變了一個項目,目標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:
和設計師是不是4.0?
而更大的問題:
我如何重新定位一個項目,.NET Framework 3.5的從的.NET Framework 4.0?
如果您有自己的app.config設置,請不要刪除它! (.settings文件的外部,即..) - 然而,鏈接的答案解釋說,當你從4.0恢復時,它不會提取所有的4.0構造,所以3.5怪異。在我的情況中,我只是對之前的工作提交進行了區分,並可以看到它在4.0版本中插入的內容 – KevinDeus