C# 2008 Express:此版本的应用程序不支持项目类型 (.csproj)

Posted

技术标签:

【中文标题】C# 2008 Express:此版本的应用程序不支持项目类型 (.csproj)【英文标题】:C# 2008 Express: Project type (.csproj) is not supported by this version of the application 【发布时间】:2009-04-27 05:41:37 【问题描述】:

我一直在尝试浏览CodePlex 上的一些项目,以了解其他人如何设计他们的应用程序。尝试在 C# 2008 Express 中打开这些项目时遇到了一些麻烦。当我打开解决方案或 csproj 文件时,我会遇到以下错误消息:

无法打开“Foo.csproj”,因为此版本的应用程序不支持其项目类型 (.csproj)。

要打开它,请使用支持该类型项目的版本。

当我打开自己创建的项目时不会发生这种情况。当外部项目采用该格式时,它们甚至会从 2005 年自动转换,但在尝试打开转换后的文件时会卡住。

这是对 Express 版本的限制,还是我可以做些什么来解决这个问题?

我尝试使用 Google 进行搜索,但我发现的结果没有什么帮助。

谢谢!

更新: @JaredPar 询问了我打开时遇到困难的具体项目。 众所周知的“压倒骆驼的稻草”被称为Continuum,但我在 CodePlex 上的其他项目以及 Paint.NET 源代码方面也遇到了困难。

我已尝试卸载并重新安装,但问题仍然存在。

@brianpeiris 要求我的安装规格:

Visual Studio 微软 Visual Studio 2008 版本 9.0.30729.1 SP Microsoft .NET 框架 版本 3.5 SP1

安装版本:C# Express

Microsoft Visual C# 2008 91910-152-0000061-60196 带有 SP1 的 Microsoft Visual C# 2008 Express Edition 的修补程序 - ENU (KB945282) KB945282 带有 SP1 的 Microsoft Visual C# 2008 Express Edition 的修补程序 - ENU (KB946040) KB946040 带有 SP1 的 Microsoft Visual C# 2008 Express Edition 的修补程序 - ENU (KB946308) KB946308 带有 SP1 的 Microsoft Visual C# 2008 Express Edition 的修补程序 - ENU (KB947540) KB947540 带有 SP1 的 Microsoft Visual C# 2008 Express Edition 的修补程序 - ENU (KB947789) KB947789

系统 系统: 微软视窗XP 专业 2002 版 服务包 2

计算机 AMD Turion(tm) 64 X2 移动版 技术 TL-50 1.60 GHz,1.75 GB 内存 物理地址扩展

另外,我应该注意我已经尝试重新安装 VS,但没有成功。我还安装了 Web Developer Express,虽然我可以从那里打开并运行项目,但 C# 仍然令人沮丧。

【问题讨论】:

没有 Visual Studio 2008 Express。 express + web developer有多种特定语言版本。您要打开哪个解决方案? @JaredPar - C# 2008 Express。它在问题的标题中,我试图让它显而易见。我只称它为 Visual Studio,因为这就是应用程序实际出现的方式。我将编辑问题。 @AgentConundrum,抱歉阅读了这个问题并没有仔细阅读标题:( @JaredPar - 完全不用担心。我实际上有点犹豫是否首先将其称为 VS,因为我通常看到它是根据特定语言来引用的。在我浏览 Google 的过程中,我确实也看到了对 vbproj (VB.Net) 文件的引用,所以我不想过于具体。也感谢您修复标签。 仅供参考,最新版本的 Continuum 项目 (1.1.1) 在 C# 2008 Express 中为我打开。 【参考方案1】:

Continuum 项目的代码库不是太大。 尝试在 Visual C# Express 中创建一个新项目并手动导入代码。 在成功构建之前,您可能还必须添加一些引用。

编辑:

我刚刚在 Continuum 项目中做到了这一点。

这是我的流程:

下载并解压 Continuum-1.1.1-Source.zip 删除 Continuum.sln 和 Continuum.csproj 在 Visual C# Express 中创建一个名为 Continuum 的新 Windows 窗体项目 删除默认的Form1.cs和Program.cs文件以及“Properties”文件夹下的所有文件 将新项目和解决方案保存在之前提取的“Continuum”文件夹中 在解决方案资源管理器中启用“显示所有文件” 包括除“bin”、“obj”和“ComplidBinary”文件夹之外的所有文件和文件夹 不要忘记包含“属性”文件夹下的所有文件 添加对 ZedGraph.dll 的引用(位于“zedgraph_dll_v5.1.5”文件夹下) 构建和享受

进一步编辑:

这是未编辑的 Continuum sln 和 csproj 文件与我使用上述过程创建的文件相比的 Unix 差异。 (我已手动合并文件以找出真正的差异。)(忽略语法突出显示。)

Continuum_original.csproj 与 Continuum_new.csproj

6c6
    <ProductVersion>9.0.21022</ProductVersion>
---
    <ProductVersion>9.0.30729</ProductVersion>
8c8
    <ProjectGuid>FD0F9C26-38BF-473F-8FD4-FDB1C7BEA600</ProjectGuid>
---
    <ProjectGuid>E3E4FFA5-0EC3-4F94-B842-33C7A49B7FF5</ProjectGuid>
13c13
    <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
---
    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
37a38,46
    <Reference Include="System.Core">
      <RequiredTargetFramework>3.5</RequiredTargetFramework>
    </Reference>
    <Reference Include="System.Xml.Linq">
      <RequiredTargetFramework>3.5</RequiredTargetFramework>
    </Reference>
    <Reference Include="System.Data.DataSetExtensions">
      <RequiredTargetFramework>3.5</RequiredTargetFramework>
    </Reference>
225c234
  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
---
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

Continuum_original.sln 与 Continuum_new.sln

3,4c3,4
# Visual Studio 2008
Project("FAE04EC0-301F-11D3-BF4B-00C04F79EFBC") = "Continuum", "Continuum.csproj", "FD0F9C26-38BF-473F-8FD4-FDB1C7BEA600"
---
# Visual C# Express 2008
Project("FAE04EC0-301F-11D3-BF4B-00C04F79EFBC") = "Continuum", "Continuum.csproj", "E3E4FFA5-0EC3-4F94-B842-33C7A49B7FF5"
12,15c12,15
        FD0F9C26-38BF-473F-8FD4-FDB1C7BEA600.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        FD0F9C26-38BF-473F-8FD4-FDB1C7BEA600.Debug|Any CPU.Build.0 = Debug|Any CPU
        FD0F9C26-38BF-473F-8FD4-FDB1C7BEA600.Release|Any CPU.ActiveCfg = Release|Any CPU
        FD0F9C26-38BF-473F-8FD4-FDB1C7BEA600.Release|Any CPU.Build.0 = Release|Any CPU
---
        E3E4FFA5-0EC3-4F94-B842-33C7A49B7FF5.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        E3E4FFA5-0EC3-4F94-B842-33C7A49B7FF5.Debug|Any CPU.Build.0 = Debug|Any CPU
        E3E4FFA5-0EC3-4F94-B842-33C7A49B7FF5.Release|Any CPU.ActiveCfg = Release|Any CPU
        E3E4FFA5-0EC3-4F94-B842-33C7A49B7FF5.Release|Any CPU.Build.0 = Release|Any CPU

您会注意到文件没有显着不同,并且正如 cmets 中针对此答案所指出的那样,我 可以实际上打开、编译和运行未经编辑的文件Continuum 1.1.1 项目!看来问题可能出在提问者的特定设置上。

这是我的软件和操作系统版本信息:

Microsoft Visual Studio 2008 版本 9.0.30729.1 SP Microsoft .NET 框架版本 3.5 SP1

安装版本:C# Express

Microsoft Visual C# 2008 91910-152-0000061-60588 微软 视觉 C# 2008

Microsoft Visual C# 2008 的修补程序 带 SP1 的速成版 - ENU (KB945282) KB945282 了解更多 信息,访问 http://support.microsoft.com/kb/945282.

Microsoft Visual C# 2008 的修补程序 带 SP1 的速成版 - ENU (KB946040) KB946040 了解更多 信息,访问 http://support.microsoft.com/kb/946040.

Microsoft Visual C# 2008 的修补程序 带 SP1 的速成版 - ENU (KB946308) KB946308 了解更多 信息,访问 http://support.microsoft.com/kb/946308.

Microsoft Visual C# 2008 的修补程序 带 SP1 的速成版 - ENU (KB947540) KB947540 了解更多 信息,访问 http://support.microsoft.com/kb/947540.

Microsoft Visual C# 2008 的修补程序 带 SP1 的速成版 - ENU (KB947789) KB947789 了解更多 信息,访问 http://support.microsoft.com/kb/947789.

操作系统名称 Microsoft Windows Vista 版本 6.0.6001 服务 包 1 构建 6001

【讨论】:

为了我自己的理智,到目前为止似乎只有我一个人遇到了这个问题,你能确认你在尝试打开未经编辑的项目时遇到了同样的错误消息吗? 嗯...我实际上并没有尝试打开未经编辑的项目!它确实工作(对不起你的理智:P)!这是我正在使用的 Visual C# Express 版本: Microsoft Visual Studio 2008 版本 9.0.30729.1 SP Microsoft .NET Framework 版本 3.5 SP1 (Microsoft Visual C# 2008 91910-152-0000061-60588) 另外,正如我在回答中提到的那样。我下载了最新版本的 Continuum (1.1.1)【参考方案2】:

尝试使用文本编辑器打开您的 .csproj -文件并删除具有 GUID 的 ProjectType 元素 - 它通常是第一个 PropertyGroup 下的第一个条目。

Source

【讨论】:

您必须删除的 ProjectType 条目位于 .csproj 而不是 .sln 中。有谁知道为什么会这样? 很抱歉听到这个消息。也可以试试 JaredPar 的建议,VSTS 测试可能会抛出你的快速版本的边缘。【参考方案3】:

您是否正在尝试加载 VSTS 单元测试项目? Visual Studio 的 Express 版本不支持 VSTS 单元测试项目,并且会导致此类警告。如果您只想查看源代码但无法加载测试,您可以稍微编辑项目文件并加载项目。

编辑

澄清我说的是 VSTS 测试单元测试项目与其他类型的单元测试项目。

【讨论】:

原谅我的无知,但是我怎么知道这是否是一个单元测试项目呢? @AgentConundrum,在代码库中搜索 [TestClass]。如果它存在,则它是一个单元测试项目 @JaredPar - 感谢您的建议,但我将所有代码重新提取到一个目录中,并对这个字符串进行 grep(不区分大小写),但没有找到匹配项。我开始想也许我应该尝试重新安装 C#。 @AgentConundrum,如果您不介意发帖,您在 codeplex 上查看哪个项目?【参考方案4】:

似乎您的 VS 版本不喜欢创建 .csproj 的 VS 版本。

您可以尝试将您自己创建的 .csproj 中的标头复制到不起作用的文件中。如果你用 C# 编写一个为你做这件事的程序,那就加分。

一个问题:如果文件是使用 VS 2005 创建的,您可能需要修改标题,使其看起来仍然是由 VS 2005 创建的,以便您的 VS 安全地转换它。我建议在网上搜索使用 VS 2005 制作的 .csproj,并使用其中的标头。

尝试下载并重新安装 Visual C# Express 2008。您可能安装了错误的副本。从官方网站下载,用一个简单的谷歌。

您有正确的 .NET 框架吗?最新版本是 3.5。如果您的版本较低,可能会导致 VS 拒绝加载它。即使您将标头更改为 2.0 或更低版本,应用程序也可能无法构建,因为它是使用更高版本的 .NET 构建的。

如果一切都失败了,请尝试安装 Visual C# 2005。

【讨论】:

【参考方案5】:

根据项目的不同,您可能需要安装许多更新,例如 silverlight、mvc..visual studio c# express 2008 sp1。(在某些情况下,第三方框架会创建这些自定义项目模板。)可能会有测试只有专业版的 Visual Studio 才能理解的项目。我发现最好的方法是使用Sharp Develop来打开和处理这些项目。 SharpDevelop 不会抱怨项目文件,在大多数情况下,如果您有正确的 dll,您也可以构建项目。

【讨论】:

【参考方案6】:

尝试使用文本编辑器打开您的项目,并将 的内容替换为您自己的项目文件创建的版本。

【讨论】:

【参考方案7】:

@brianpeiris 几乎拥有它:

Visual Studio/C# Express 2008 RTM 是版本 9.0.21022.8,而 Visual Studio/C# Express 2008 SP1 是版本 9.0.30729.1

尝试升级到Microsoft Visual Studio 2008 Express Editions with SP1。您可能还想阅读Visual Studio Express with SP1 FAQ。

【讨论】:

【参考方案8】:

警告:这完全是一个 hack,但是:您也许可以编辑 .csproj 文件并注释掉 ,如下所示:

<-- <ProjectTypeGuids>6D335F3A-9D43-41b4-9D22-F6F17C4BE596;FAE04EC0-301F-11D3-BF4B-00C04F79EFBC</ProjectTypeGuids> -->

也就是说,只是将它们注释掉可能会用编译它的麻烦来代替打开项目的麻烦。更好的方法是搜索该行的指南。例如,如果您 google 上述项目类型 guid,您将能够确定该项目使用 XNA,然后您可以下载 C# 2008 Express。

【讨论】:

【参考方案9】:

我在安装 Visual Studio 的 DB2 插件后遇到了这个问题(无法打开,因为此版本的应用程序不支持其项目类型 (.csproj)。),我按照以下步骤解决了. 单击开始 > 所有程序 > Visual Studio 2008 > Visual Studio 工具 > 单击 Visual Studio 2008 命令提示符。输入以下命令并按回车键。

devenv.exe /resetskippkgs

执行此命令应该可以解决您的问题。

【讨论】:

【参考方案10】:

也许这会有所帮助...

    转到 Visual Studios 命令提示符。 键入 devenv.exe /resetskipkgs

它现在应该运行旧项目。

存在 SkipLoading 标记会禁用 VSPackage 的加载;清除标记会重新启用 VSPackage 的加载。

以上命令清除所有 SkipLoading 标签。

【讨论】:

【参考方案11】:

转到开始 > 所有程序 > Visual Studio 2008 > Visual Studio 工具 > 单击 Visual Studio 2008 命令提示符。输入以下命令并按回车键。

devenv.exe /resetskippkgs

它打开 Visual Studio 2008 IDE,最后一切正常。

【讨论】:

以上是关于C# 2008 Express:此版本的应用程序不支持项目类型 (.csproj)的主要内容,如果未能解决你的问题,请参考以下文章

将数据库项目部署到 SQL Server 2008 Express

如何管理在 VS C# Express 中发布和构建的通用文件?

是否可以进行命令行项目升级并从 Visual C# 2005 编译到 Visual C# 2008 Express?

sqlserver 2008express版本启用混合登陆和sa

迁移MSSql Db - 来自SQL Server 2008 R2 Enterprise备份可以在SQL Server 2008 R2 Express版本中还原

SQL Server 2008 R2 Express三个版本有啥区别?