none
如何让同一个编译完的程序在.net Framework 4和2.0~3.5上能同时运行? RRS feed

  • 问题

  • 现在编写的一个小工具需要在全新安装的Windows Vista、Windows 7、Windows 8 Consumer Preview(以及即将发布的Release Preview)中运行。

    现状:
    程序用C#编写,没有用到任何.net Framework 2.0以上的新特性,可以任意切换目标框架2.0~4 Client Profile进行生成;
    如果选择2.0为目标平台生成,在全新安装的Windows 7上没有任何问题,但是在全新安装的Windows 8 CP上运行时提示需要安装2.0~3.5;
    如果选择4或者4 Client Profile为目标平台生成,那么情况反过来,在Windows 8 CP上没有任何问题,在Windows 7上提示需要安装4或者4 Client Profile。

    能否在全新安装的Windows Vista、Windows 7、Windows 8 CP不安装任何其他.net Framework的基础上直接可以运行这个程序?
    如果能,怎么做?比如如何配置项目的各种属性?

    ==========

    时间仓促,只找到MSBuild多目标功能的内容。
    http://msdn.microsoft.com/zh-cn/library/ee395432.aspx
    里面记载的内容有一句"例如,可以将同一个应用程序编译为既能在 .NET Framework 2.0 版上运行,也能在 .NET Framework 4 版上运行。"。
    但是在英语的原文中
    http://msdn.microsoft.com/en-us/library/ee395432.aspx
    这句话是"For example, you can compile an application to run on the .NET Framework version 2.0, and compile the same application to run on the .NET Framework version 4. "。
    似乎意味着必须针对两个Framework个别生成,这一处是不是存在翻译上的误导。


    • 已编辑 57 2012年5月25日 6:03
    2012年5月25日 3:26