【问题标题】:How does one convert a Visual Studio .NET 2008 solution to Visual Studio .NET 2005?如何将 Visual Studio .NET 2008 解决方案转换为 Visual Studio .NET 2005?
【发布时间】:2009-05-06 19:25:50
【问题描述】:

假设一个解决方案只包含类,并且这些类都是按照 .NET 2.0 规范编写的。如果要在 Visual Studio 2008 中打开、转换和保存该解决方案,是否可以稍后在 Visual Studio 2005 中重新打开该解决方案,只需对 .SLN 文件进行一些最小修改?

如何去做呢?

如果解决方案中包含的所有类都已写入 .NET 2.0 规范,是否有工具可以将 2008 年到 2005 年的 .SLN 文件“向下转换”?

【问题讨论】:

    标签: c# visual-studio-2008 visual-studio-2005 solution


    【解决方案1】:

    通常,您对 .SLN 文件唯一需要做的就是更改文件顶部的版本号。

    您的 CS 项目文件也几乎没问题,如果不是,可以调整它们,使它们在 2005 和 2008 中都可以。

    我们运行了一段时间,两个解决方案文件(05 和 08)共享同一组 CS 项目文件。

    但请注意,您不能像这样在两个版本之间共享 VC 项目文件。

    项目文件的“调整”如下:

    在 VS2008 上创建的 CS 项目将包含以下行:

    <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
    

    VS2005 会卡住,你需要改成下面这样:

    <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
    

    后者适用于 2005 年和 2008 年。

    【讨论】:

    【解决方案2】:

    如果您在 2008 年没有使用任何“花哨”功能,根据我的经验,唯一改变的是几个地方的版本号。可以手动编辑(它位于文件 IIRC 的顶部)。至少值得一试。如果您使用的是 VS2008 特定的功能(设计师等),它可能无法正常工作,但对于简单的类库,我已经成功地做到了这一点。

    您可能对我不久前写的blog post about VS2005 and VS2008 co-existing 感兴趣。

    【讨论】:

      【解决方案3】:

      这里有一个转换器http://www.emmet-gray.com/Articles/ProjectConverter.htm(也适用于 VS 2010)。

      还有http://www.dsmyth.net/wiki/Downloads_VS2008ToVS2005Patcher.ashx
      (链接当前断开?)。

      我也发现了这个http://www.codeplex.com/Vs2008BackMigration,但我没有测试它。

      【讨论】:

        【解决方案4】:

        是的,如果您“降级”解决方案文件,这是可能的。

        不,我知道没有这样的工具,我已经看过了。

        您有三个选择:

        1. 2008 年未打开解决方案文件,因此从不升级它
        2. 不要将客户端版本与相同的文件混合使用(即坚持使用 2005,或者每个人都升级)
        3. 为 2005 年和 2008 年保留单独的解决方案文件,确保所有相同的项目都存在于两者中

        感谢@Will Dean 提醒我项目文件确实可以共享。请注意,它们被 2008 年的编辑器触及,但它们可以在 2005 年之后打开。

        【讨论】:

        • 对于 CS 项目,不需要单独保留项目,您可以在 2005 年到 2008 年之间共享它们
        • 项目是,解决方案文件没有。
        • 我实际上遇到了这样一种情况,即来自 Visual Studio 2008 的 C# 项目(不是解决方案)无法在 Visual Studio 2005 中加载。错误是:“导入的项目”C:\Microsoft.CSharp .targets”未找到。”
        【解决方案5】:

        你可以试试这个。 YMMV

        http://www.emmet-gray.com/Articles/ProjectConverter.htm

        我记得几个月前它发布在 Jon Skeets 博客上,似乎得到了人们的赞许

        【讨论】:

          【解决方案6】:

          没有直接的方法,如果您尝试,这是一项艰巨的任务。最简单的方法是创建一个新的 2005 项目并添加您的类。

          对于初学者:这些是您会看到的差异:

          .csproj 文件:(这些基于 MSBuild 架构)

          (编辑)

          • 工具版本
          • 产品版本
          • 项目版本

          (删除)

          • 旧工具版本
          • 目标框架

          .sln 文件:(无架构)

          • 格式版本 10.0

          等等

          【讨论】:

          • 这不是真的。 CS projects 可以在两个版本之间共享。
          • OP 询问解决方案文件。我在我的答案中添加了更多细节,告诉你为什么它很困难。 (我从来没有说过这是不可能的。)
          猜你喜欢
          • 1970-01-01
          • 2014-08-01
          • 1970-01-01
          • 2011-01-02
          • 1970-01-01
          • 1970-01-01
          • 2017-09-02
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多