.Net 'Any Framework' configuration

前端 未结 4 872
猫巷女王i
猫巷女王i 2021-01-19 17:25

I built a program in C# .NET 2.0 that works great also under framework 3.0 and 3.5.

But if .NET Framework 4.0 is the only framework installed, it does not working, i

相关标签:
4条回答
  • 2021-01-19 17:58

    Found it!

    Here is the configuration for all who need it:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <startup>
        <supportedRuntime version="v2.0.50727"/>
        <supportedRuntime version="v4.0.30319" sku=".NETFramework,Version=v4.0,Profile=Client" />
      </startup>
    </configuration>
    
    0 讨论(0)
  • 2021-01-19 18:00

    the thing you need to change the minimum requirement for application.

    go to project setting change the target framework to 2.0 and i thing it's play same even user have 2.0 or 4.0 Net framework in their system

    0 讨论(0)
  • 2021-01-19 18:10

    This doesn't work without configuration by design. .NET 4 uses a different runtime, and when you load a .NET 2 assembly, by default, it loads it in version 2 of the CLR. You can reconfigure it to prevent this behavior, and have it load in v4 of the CLR - but it's not always a good idea. It causes the code you write to be run on a framework different than the one on which it was designed and tested, which can potentially be problematic.

    It's typically easier and better to just install the proper requirements on the system. Installing .NET 2 is very easy (and comes by default on Vista+). This has the advantage of running your program on the framework for which it was designed.

    0 讨论(0)
  • 2021-01-19 18:10

    It is very hard to find a machine that only has 4.0 installed. .NET 2.0 compatible versions are pre-installed on Vista and Win7 machines, they'll run your program without a hitch. You'd have to have a virgin XP machine that never had .NET installed. Maybe a server core. In which case somebody made a bit of a blunder by installing the wrong version of .NET.

    Not sure how that happened, smells like a communication problem. Maybe you shouldn't leave it up to somebody else to get this wrong. When the system requirements for your app include support for XP then you'd better make sure it is available. Pretty simple with a Setup project.

    Your app.config is otherwise wrong, <requiredRuntime> has been obsolete since .NET 1.0. The proper incantation is <requestedRuntime> and ask for both 2.0.50727 and 4.0

    0 讨论(0)
提交回复
热议问题