谁能建议针对 .NET 3.0 的应用程序是否可以在具有 .NET 2.0 和 4.0 但不是 3.0 的用户计算机上运行?3.0 和 3.5 的安装程序在此特定机器上崩溃。
3 回答
.NET Framework 4.0 独立于 .NET Framework 2.0/3.0/3.5(都是一个框架。2.0 是基础、完整的框架。3.0 和 3.5 是 2.0 的扩展。)。
/编辑
我很好奇,赶紧自己试了试。这实际上取决于您是否针对 3.0/3.5 构建应用程序并最终真正使用 3.0/3.5 特定的东西(例如 Linq)。如果您不使用它,那么它当然仍然可以工作。
但如果这样做,用户将看到 Microsoft 错误报告对话框。
似乎“没有直接针对 .NET 3.0/3.5”,因为它取决于目标依赖项(项目引用)。
但最终答案仍然应该是:“不,因为你永远不知道!”
4.0 框架名义上向后兼容为早期版本(1.1 和更高版本)编译的程序集。CLR 中的某些更改仍有可能破坏您的应用程序。有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/ff602939.aspx。
故事的寓意:在 4.0 CLR 上测试您的 3.5 应用程序以确保其正常工作。
.Net4很可能拥有您的程序所需的所有东西,有一个选项可以重定向程序集的使用(有点乏味但有)您可以修改应用程序的配置文件,通常在开发中命名为App.config和ApplicationName .exe.config部署时。
在部分配置中,对所有应重定向的程序集尝试此操作:
<runtime>
<generatePublisherEvidence enabled="false"/>
<gcServer enabled="true"/>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System" publicKeyToken="b77a5c561934e089" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="4.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>