将VS2008项目转换为VS2010

7
我有一个在VS2008中构建、针对.NET Framework 3.5的组件项目。我最近下载了VS2010 Beta 1,以确保当转换到新的IDE时,这个项目会正确地转换。这个项目包含引用了一些第三方dll,这些dll是针对2.0版本的框架构建的。我将我的项目更改为针对4.0版本的框架进行构建,但是当我尝试构建项目时,我得到了很多错误,看起来编译器无法识别那些第三方库类类型,类似于下面的内容。
"The type or namespace name 'Data' does not exist in the namespace 'Microsoft.Practices.EnterpriseLibrary' (are you missing an assembly reference?)"
我正在努力弄清楚为什么我无法编译。从我所读的内容来看,.NET 4.0使用了不同版本的CLR。那么为什么会影响我访问这些类型的能力呢?我需要:
a) 获取源代码并在VS2010 / .NET 4.0中重新编译,然后引用该程序集
b) 等待项目作者执行上述操作并发布针对4.0 CLR的程序集?
c) 还是其他什么,因为我的VS2010安装可能出了问题?
我可以将项目属性更改为针对3.5进行目标设置,在2010 IDE下一切正常。

1
我的经验是:VS2010在转换项目方面存在严重问题。 - Mehrdad Afshari
3个回答

2
我怀疑这是因为.NET 4.0使用的是CLR 4.0而不是2.0。 EL 4.1将会对CLR 2.0进行构建,所以如果没有帮助,我不确定是否能够找到它。

我记得在开始使用.NET 2.0(VS 2005)时,我可以使用1.1 dlls。不过我现在已经卸载了它,所以无法确定。我认为这种情况类似于那种情况。 - sdanna
你从来不能混合使用.NET 1.1和2.0。 - John Saunders
我刚刚得到了一个非常古老的Log4Net版本(类似于'01年,运行时版本v1.0.3705),并进行了尝试。针对2.0框架,我成功地进行了编译。让我明确一点,我在我的机器上安装了所有版本的框架,包括4.0的测试版。我还能够顺利让我的项目定位到4.0版本,没有出现任何问题。我认为我将不得不把这归咎于一个转换问题,并且深入研究一下这个方面。 - sdanna
当你说“1.1 dlls”时,我以为你指的是Microsoft .NET Framework 1.1。你似乎是指“最初构建在.NET 1.1上的程序集”。它们可以工作,并且默认情况下会绑定到2.0程序集。 - John Saunders

2

看起来对我来说是CLR版本问题。

目前,我建议使用b)和/或仅编译成v2.0/v3.5。

您想在v4.0中使用特定的功能吗?


我期待的其中一个功能是能够更好地控制我的ASP .NET控件ID,以便在针对特定控件时使JavaScript变得更加轻松。 - sdanna

1

我想将这个问题标记为已解决,根据评论和我的经验,我认为Mehrdad在问题附加的评论中是正确的,这是一个VS2010项目转换的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接