【问题标题】:Framework Upgrade to 3.5框架升级到 3.5
【发布时间】:2012-03-12 17:10:27
【问题描述】:

我有一个项目引用了另一个项目的 dll。他们都在.net framework 2.0中。

因此将两者都升级到 3.5,但是当我去参考第二个项目(引用第一个项目的那个)时,它仍然在属性运行时版本 2.0 上显示,即使我删除了参考并重新添加。

  1. 在部署到版本为 2.0 的服务器之前,我如何确定引用的 dll 是否是升级后的?

  2. 我不想删除服务器中的所有文件并进行部署,升级后是否需要检查配置文件是否引用相同的 dll 并部署已发布的文件,还是需要一起替换?

【问题讨论】:

  • Framework 3.5仍然使用CLR 2.0版本,所以你看到的没错。也许你可以看到this chart
  • @V4Vendetta:谢谢你的评论,那我怎么确定它是 3.5 呢?
  • 为什么不更新到 Framework 4.0,因为您现在正在开发它?

标签: c# asp.net .net frameworks upgrade


【解决方案1】:

.NET 3.0 和 .NET 3.5 的 CLR 与 .NET 2.0 的 CLR 相同。

因此,检查您的程序集是否升级的最佳方法是使用程序集版本。构建程序集时,请务必在 AssemblyInfo.cs 中维护程序集版本和构建版本。

拥有一个强命名的程序集是最好的检查方法。

【讨论】:

    【解决方案2】:

    .Net 3.5 和 .Net 2 都在 CLR 版本 2 上运行,因此“旧”和“升级”程序集的运行时版本不会改变。

    至于是否“升级”,我建议使用ILDASM查看引用了哪个版本的mscorlib。

    但是,this SO question 的答案提供了一些替代方案。

    【讨论】:

    • +1:但是对 ildasm.exe 的特定调用如何帮助显示是否引用了 .NET 3.5 或 2.0 框架。
    • @rich.okelly:我需要下载 ildasm 还是 Visual Studio 自带的?
    • @Sam1 是的,打开 Visual Studio 命令提示符,您就可以使用 ildasm。
    • @rich.okelly: 至于部署它,我是否只需要检查配置文件以使其引用 3.5 并发布文件?
    • @Sam1 我假设您指的是runtimeVersion 属性 - 这是指应用程序应在其下运行的 ASP.Net 版本,如果它也发生更改,请更新它。
    【解决方案3】:

    您可以通过在 Reflector(或其他反编译器)中打开程序集来轻松检查该程序集是针对哪个版本构建的。

    【讨论】:

    • 感谢您的回答,您知道我可以使用哪些免费的吗?搜索和redgate不是免费的
    • Telerik 刚刚发布了JustDecompile,它是免费的。 (也不错)
    猜你喜欢
    • 2011-02-12
    • 2011-12-12
    • 2011-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多