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

时间:2009-04-27 05:41:37

标签: visual-studio

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

  

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

     

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

当我打开自己创建的项目时,这不会发生。外部项目甚至在2005年以这种格式自动转换,但在尝试打开转换后的文件时会窒息。

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

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

谢谢!

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

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

@brianpeiris请求我的安装规范:

Visual Studio
Microsoft Visual Studio 2008
版本9.0.30729.1 SP
Microsoft .NET Framework
版本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

系统
系统:
  Microsoft Windows XP
  专业
  版本2002
  Service Pack 2

计算机
  AMD炫龙(TM)64 X2手机
  科技TL-50
  1.60 GHz,1.75 GB的RAM
  物理地址扩展

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

11 个答案:

答案 0 :(得分:3)

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”和“CompliedBinary”文件夹之外的所有文件和文件夹
    • 不要忘记在“属性”文件夹下包含所有文件
  • 添加对ZedGraph.dll的引用(位于“zedgraph_dll_v5.1.5”文件夹下)
  • 构建并享受

进一步修改:

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

Continuum_original.csproj vs 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 vs 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

您会注意到文件没有显着差异,并且正如此答案的评论中所述,我可以实际打开,编译和运行未经编辑的Continuum 1.1.1项目!似乎问题可能出在提问者的特定设置上。

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

  

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

     

已安装版:C#Express

     

Microsoft Visual C#2008
  91910-152-0000061-60588 Microsoft   Visual C#2008

     

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

     

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

     

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

     

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

     

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

     

操作系统名称Microsoft Windows Vista   版本6.0.6001服务   Pack 1 Build 6001

答案 1 :(得分:2)

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

Source

答案 2 :(得分:1)

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

编辑

澄清说我正在谈论VSTS测试单元测试项目与其他类型的单元测试项目。

答案 3 :(得分:1)

好像你的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。

答案 4 :(得分:0)

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

答案 5 :(得分:0)

尝试使用文本编辑器打开项目,并替换&lt; ProductVersion&gt;的内容。到您自己的项目文件创建的版本。

答案 6 :(得分:0)

@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

答案 7 :(得分:0)

警告:这完全是一个黑客,但是:您可以编辑.csproj文件并注释掉&lt; ProjectTypeGuids&gt;,如下所示:

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

那就是说,只是评论那些可能会取代你打开项目的麻烦,而不是编译它。一个更好的方法是谷歌guid在那条线上。例如,如果你谷歌上面的项目类型guids,你将能够发现项目使用XNA,然后你可以下载C#2008 Express。

答案 8 :(得分:0)

我在安装Visual Studio的DB2加载项之后遇到了这个问题(无法打开,因为此版本的应用程序不支持其项目类型(.csproj)。),我通过以下步骤解决了这个问题。 点击开始&gt;所有程序&gt; Visual Studio 2008&gt; Visual Studio工具&gt;单击Visual Studio 2008命令提示符。输入以下命令,然后按Enter键。

devenv.exe / resetskippkgs

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

答案 9 :(得分:0)

可能会有所帮助......

  1. 转到Visual Studios命令提示符。
  2. 输入devenv.exe / resetskipkgs
  3. 它现在应该运行旧项目。

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

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

答案 10 :(得分:0)

转到开始&gt;所有程序&gt; Visual Studio 2008&gt; Visual Studio工具&gt;单击Visual Studio 2008命令提示符。输入以下命令,然后按Enter键。

devenv.exe / resetskippkgs

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