【发布时间】:2012-11-16 19:27:48
【问题描述】:
运行到这个问题。我在 Visual Studio 2010 中打开一个项目。转换向导出现,我按完成。它会打开项目,但无法编译,并在所有引用都存在时抱怨缺少程序集引用。我怀疑这是因为转换。 .csproj 文件从 :
<Project DefaultTargets="Build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
到
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
所以目标框架已经改变。如何禁用此功能?我没有从我这边做任何事情。刚打开项目,编译失败。 Visual Studio 2010 中是否有一些智能来禁用或不这样做,所以我可以进行一些开发和编译。它引用了大量其他项目,我无法转换它们。
该项目最初是在 2008 年开发的,我现在在 VS 2010 中打开。
更新 看起来问题是从这个旧应用程序引用的一些程序集已升级到目标框架 3.5。但是这个应用程序仍然针对 2.0。所以我升级了它的目标框架。
现在还有一个问题。此应用程序和引用的程序集都引用了程序集 A。但应用程序引用的是 A 5.0,而引用的程序集引用的是版本 A 6.0。所以 Visual Studio 对此有所抱怨。为什么这些版本必须匹配?应用程序及其引用的程序集不能使用不同版本的通用程序集吗?
Visual Studio 中的错误报告是阴暗可悲的。
【问题讨论】:
-
您发布的内容完全一样。唯一的区别是
ToolsVersion,它不指示您尝试针对哪个 .NET Framework。 确切的构建错误是什么? -
错误 2 名称空间“...”中不存在类型或名称空间名称“..”(您是否缺少程序集引用?)。所需的引用作为依赖项存在,它们编译得很好。该项目用于 prod 环境并每天编译。 Visual Studio 2010 发生了一些变化。
标签: c# visual-studio-2010