VS2010中的后端口.NET 4到3.5 SP1

时间:2011-10-20 02:06:02

标签: c# .net wpf visual-studio

我编写了一个简单的VS2010 WPF应用程序,该应用程序针对 .NET Framework 4 Client Profile 。 (事实上​​,我的应用程序不使用任何.NET 4功能,但VS2010默认情况下启动我的项目定位.NET 4,所以我没有费心去检查它)

我发现所有XP系统甚至一些Windows 7的各种语言都无法启动应用程序。我决定通过更改解决方案属性中的Target Framework来将我的应用程序移植到目标 .NET Framework 3.5 .NET Framework 3.5客户端配置文件。但该应用程序无法在System.XamlMicrosoft.CSharp上编译或构建以下错误:

Warning 1   Could not resolve assembly System.Xaml. The target framework required by this assembly (4.0) is higher than the project target framework. If this reference is required by your code, you may get compilation errors.   test1
Warning 2   The primary reference "Microsoft.CSharp", which is a framework assembly, could not be resolved in the currently targeted framework. ".NETFramework,Version=v3.5". To resolve this problem, either remove the reference "Microsoft.CSharp" or retarget your application to a framework version which contains "Microsoft.CSharp".    test1
Warning 3   The referenced component 'Microsoft.CSharp' could not be found.     
Warning 4   The referenced component 'System.Xaml' could not be found.  

是否可以将VS2010应用程序的端口(或后端目标)备份到.NET 3.5?如果是这样,怎么样?

[编辑]

我发现有一个Control - DataGrid - 设计用于.NET 4.我必须安装WPF Tool Kit以将控件移回到3.5。希望有人觉得这很有帮助。

3 个答案:

答案 0 :(得分:4)

删除它们。测试它并适合我。我相信这些程序集仅在.NET 4中引入。例如,System.Xaml中的类型在.NET 3.5中的其他位置定义(例如,像PresentationCore)。有关详细信息,请参阅此article

答案 1 :(得分:1)

完全删除这些引用。如果您仍然需要它们,请通过Visual Studio中的UI重新添加它们。您应该看到这些程序集的3.5版本或2.0版本。通过使用这些旧版本,您的应用程序应该编译。

答案 2 :(得分:0)

您必须在references文件夹中删除这些引用,然后使用3.5版本重新添加它们。