My fotner is [1.76精品 ...

.NET framework is an important support library for many programs. Unfortunately, its versioning and updating leave a lot to be desired.
Do i need Microsoft .net framework 1.1 and 2.0 service pack 1 and
3.0 service pack 1 on my desk top computer? I don't develop new
The fact that you don't develop software actually has nothing to do
with anything here.
.NET is most likely used by other software you have installed on
your machine.
.NET versioning, unfortunately, is apparently a mess.
To cut to the chase: I wouldn't delete a thing. It possible that you
do, in fact, need all those different versions of .NET - or not. We
could go through a long exhaustive search to see which programs you
have installed might require one version or the other, but in my
opinion it's just not worth it.
OK, just what is the .NET framework?
To grossly oversimplify, it's a package of common support software
that can be used by programs so that they don't all have to re-write
the same software over and over again. More specifically, it's aimed at
users of Microsoft's newer versions of programming languages like C#,
Visual Basic .NET and others. The .NET framework provides a broad array
of functionality that can be used by programs written in those
languages to perform common tasks, most commonly things that involve
interacting with Windows itself.
So you may well have programs installed on your machine that rely on
the .NET framework, and thus deleting .NET will cause that program to
fail. Over time, more and more programs have come to rely on .NET, so
chances are actually pretty high that you have at least one and perhaps
more that rely on .NET.
You get the .NET framework either of three ways:
It might already be on your machine. Certain versions of the .NET
framework are pre-installed on some versions of Windows.
A program you install might install it. The .NET framework is
available in what are called "redistributable packages", which means
nothing more than software vendors can include it in the software they
deliver to you. If a program requires the .NET framework, then it may
include it on its CD or in its download, and install it automatically
as part of installing the program.
You may be instructed to download it. The .NET framework tends to be
large, and because it's also fairly common these days, many vendors are
opting not to actually include it in their distributions, but instead
ask you to download and install it if you don't already have the
required version.
Now, about those versions.
The .NET framework versions installed on my machine
Normally, it's safe to assume that version 2 of some
software replaces version 1, and that version 3 replaces both 1 and 2.
Each later version includes everything in the prior versions, so that
the prior versions are no longer necessary.
Apparently the .NET framework isn't "normal". For example, software
that requires .NET framework version 1 might not work if only version 2
is installed. In fact, you'll already note that while most software
upgrades replace the previous versions, .NET framework installations do
not. If you install version N+1, version N remains.
That's kind of frustrating.
But the solution is simple: leave them there. Yes, they eat up more
disk space, but unless you really know what you're doing or want to
spend a lot of time experimenting (back up first!), just leave them
there and get on with your life.
Rumors are that the mess will get cleaned up in a future version,
but in all honesty, I'm skeptical.
November 13, 2008
Share this article with your friends:
has been playing with computers since he
was required to take a programming class in 1976. An 18 year career as a programmer at Microsoft soon followed.
After "retiring" in 2001, Leo started
in 2003 as a place for answers
to common computer and technical questions.
Not what you needed?
You may also be interested in:
Some updates might be safe to uninstall, but
doing so makes some risky assumptions. Most programs keep only the
patches they need.
Unless you're willing to pay a lot of
attention on a very regular basis, automatic updates are an important
part of keeping your machine safe.
I, too, used to be confused by the .Net Framework.
I didn't know whether I needed to install all versions, just one, etc.
But then someone on a forum said something to me that cleared it all up.
They said to look at the .Net Framework as if they were the Visual Basic Runtime files needed back on older versions of Windows.
I remember back in the day, whenever reinstalling Windows, I used to have to then download and reinstall all the versions of the VB Runtime files-- versions 1 through 6, if I remember correctly.
And I'm pretty sure one of those versions had two versions itself-- a 16 bit version and a 32 bit version.
It was a mess, but I knew it had to be done.
But, anyway, once that poster told me to look at it that way, now I completely understatnd how to look at and handle the .Net Framework.
I have had the experience you mentioned in this answer.
I thought that if version 3 included parts of 1 and 2, then why not uninstall .NET 1 & 2?
The result:
several programs wouldn't run until I re-installed .NET 1 & 2.
I agree: keep them all. You just do not realize what you have until you lose it!
The installation of various versions of the .NET Framework side-by-side is Microsoft's solution to the old problem of "DLL Hell."
Instead of relying on software vendors (including Microsoft itself) to produce version 2 of some support library that is 100% compatible with version 1, all the time and for every possible program, just let version 2 coexist in the system alongside version 1.
Programs that expect to use version 1, and were tested by their vendors with version 1, get version 1; programs that expect version 2 get version 2, and so on.
(Actually, developers can make a program that works with both version 1 and version 2, but that requires an affirmative choice to do so, and appropriate testing against both versions of the library.)
Hard disk space is cheap.
Users' time spent figuring out why installing program X caused program Y to stop working is not.
The last thing to do is uninstall .NET Framework. I kept on trying to install a Windows Update of the .NET Framework without success, so I uninstalled the previous versions thinking that I could reinstall them all manually from the Windows Update site. BAD MOVE! I was warned that several programs wouldn't work if I continued with the uninstall, but I thought that as I would be reinstalling immediately, everything would be OK. NOT SO! The reinstall from Windows Update failed several times, and now my computer won't even boot into the Bios! Help!
Thank you , I had recently installed .Net framework from microsoft updates and didn't know why .
Visual Basic run-times are the same way.
Programs written for VB4 cannot use VB6, for instance.
You need to keep the older versions if you still have any programs that use them.
I agree with most of the above remarks. Let Microsoft notify me and let me choose the update. Then leave them alone... period. Someone said hard disk is cheap so get it and get back to using the computer more and less in maintaining and repairing it.
Thanks Leo and friends
Thanks for the enlightenment, like so many simple folk I have to just accept the mushroom treatment doled out by Microsoft.
We may not understand an explanation but even an attempt, to acknowledge that in our millions we have helped to build Microsoft with our pennies, would go along way to making it less disliked.
I have just read this article again because I cannot update .Net1.1 update and I was told by Microsoft to uninstall then re install and they gave me all the instructions on thier up date website. I was not to sure if I could do all this and now I am beggining to wonder if I did the right thing by just leaving it.
Just read you explanation of the purpose of .NET Framework.
I receive updates all the time without understanding what it does (I was educated a software programmer 30 years ago).
The Microsoft explanation (and several others') are completely incomprehensible (to me).
Not yours.
Thank you. Microsoft should be sorry you quit, because those who try to explain .NET Framework does not seem to be able to measure up...
I was supposing (guessing) that .NET framework was something used by my installed programs rather than by me but wasn't sure. I liked this article because I remember very painfully VB Runtime and DLL Hell and have several small, speciality programs that use them.
Leo, this article was more enlighting than Wikipedia whichs never really tells a non-programer what it does. Thanks
Well, its a good thing that they created this .NET stuff, so that people wouldn't have to keep rewriting basic code. I have few if any applications that use it, but I have hundreds of megabytes of file data for .NET components.
Then, someone is saying that we should just keep all the versions on our computers because MY harddisk space is cheap and MY time spent fixing it is not. Thats the kind of attitude that gets us here. I think it should be THEIR time fixing it and making it right in the first place.
What a mess this .NET stuff is.
If you want your software to be run on a VM use Java. If you want native apps use native code. Now we are going to have system software running in a VM oh joy! Better get that new CPU and extra memory to support the next generation of bloatware.
Better update your internet connection while your at it to support all the latest .NET updates that are coming your way!
Leo! I found "Ask Leo" about 4 ,5 weeks ago and a day doesn't go by
where in a few minutes you mange brilliantly to cut through the junk , save me countless hours of time on maintenance. I had the NET Framework 1 and 2 downloaded automatically. When
I was asked by "Uniblue register"
to download NEt Framework 3 I had "errors" many hours on the phone with Microsoft windows
tech support, countless emails, sending in logs, registry,and major coniptions to
no avail.I
finally asked Microsoft if I need their NET Framework and they said no as a home user who doesn't program.{They prbably wanted to get me off their tail}.
Thanks for clearing things up quickly and simply as you always do.
What a relief to find that others find Microsoft's explanations incomprehensible. I almost deleted .Net Framework until reading this article, thinking it was foundation for a programming language that I wasn't into. Thank you, Leo, and all you other respondents.
Excellent explanation - I need additional help!
So, I get the part that you sometimes need various versions of the .NET Framwork for other programs, my problem is that I tried to install a software program that included .NET (v2 if I remember correctly) as a redistributable, but when it got to the .NET installation part, it gave me an error and wouldn't let me continue the download.
Needless to say, I can't run that software on my computer w/out it.
I talked to the software tech support, they said the problem was with MSoft, not them, so they wouldn't help.
Any suggestions?
Is there a version of .NET that is compatible with Vista that might work for my software?
I disregarded what Leo said and I deleted all the .net framework versions back as far as but not including the 1.1 hotfix. Well it didn't make any improvement - just as Leo suggested it wouuldn't - but it didn't seem to do any damage either. That is, I had non responsive start ups to IE8 before I did uninstalled the later version of .net framework and I still get the same non responsive start ups with IE8 at the same frequency as before. I will keep an eye on it. I might reinstal the .net 2.0 and 3.0 and the other updates back on if I find I'm getting any problems. I really have no idea what all of these .net framework version are for anyway.
Well, I should have just got rid of IE8. Instead I had assume the issues weren't with IE8 but were with either AVG8 or else .net Framework. After getting rid of most versions of .net Framework back until 1.1 I still had start up issues with IE8. So, I uninstalled IE8 and am back with IE7 (which I should have done in the first place!). IE7 works fine so I'm putting back all the versions of .net Framework available because it wasn't that causing me problems. Well, this all took me a couple of hours and some frustration - but I should have accepted the most obvious cause - the new IE8 and not started looking around for other causes it turned out not to be! Thanx for the good pointers on this .net Framework, Leo. I tried going against you but I came back to see you were probably right in the first place!
I have one question:
My application was hosted in a server where .Net framework 1.1 and 2.0 was installed.
Due to my requirement I have installed .Net framework 3.5 as of one more application which was development under .Net framework just want to run on the same serevr.
But after installing .Net 3.5 framework, current running application is not working properly.
Is there any draw back to insatll multiple .Net framework into single server. Please suggest ???
I think Leo's right, I might have received it in a redistribution package for website development.
I was having issues with this too. I'm not sure if I need it or not since I uninstalled my Website development software, however, as soon as I 'blocked' it(MicroSoft.NET Framework Assistant) in 'Add-ons' under 'Tools' in Firefox EVERYTHING in my browser improved. Faster page downloads and no more jiggling screens in my email box.
Firefox now automatically blocks mine.
I was about to delete. NET. but checked here first. Glad I did.
thank you for your explanation very simple even a dunce like me can understand it, like your every day talk
First of all, I must give my sincere thanks to Leo. He has saved me headaches and possible loss of files and/or even my system, time after time...
Regarding .NET Framework:
Starting 10/14/2009, Windows Automatic Update keeps trying to install .NET Framework 1.1 SP1 Security Update (KB953297), every single day, and each time the installation fails.
I checked and I have already installed in my system: v1.0.3705, v1.1.4322, v2.0.50727, v3.0 and v.3.5 and was ready to uninstall them all but the last one, until I came to "ask Leo"... Good thing I did, once again.
My question is, why is this Security Update systematically failing installation? It started around the same time I upgraded to NIS2010.I wonder if it has anything to do with it?
I also feel important to add that on the same date (10/14/2009), .NET Framework 2.0 SP2 Security Update was successfully installed as well as other updates, by the same process of Windows Automatic Updates.
I use Windows Vista Home Premium and the Error Details line for the repeated installation failure states this: Code 643.
What could possibly be the issue?
Thanks a million for any help on this.
converting vb6 codes to vb.net and do i need microsoft .net framework?
Running J# do i need microsoft .net framework
what was the response to the question about the continual attempt to automatically install .NET Framework 1.1 SP1 Security Update after it has all ready been installed. Is there some way I can block this?
In relation to auto updates I have experienced exactly the same as Lin Yu on exactly the same dates.
This is the message I got today from the automatic update:- The following updates were not installed "Microsoft .NET Framework 3.5 Service Pack 1 and .NET Framework 3.5 Family Update for .NET versions 2.0 through 3.5 (KB951847) x86
Microsoft .NET Framework 2.0 Service Pack 2 Security Update for Windows 2000, Windows Server 2003, and Windows XP (KB974417".
Any ideas on a solution would be great.
Well.. Thanks for this information as a regular software I thought
3.5 will take care of all the previous versions, but I was wrong it is still asking me to install 1.1 and 1.1 SP1.
This is crazy..But thanks Leo for this knowledge
For sometime now, on bootup, I get two dialog error boxes, both having to do with .NET Framework. The first one is titled NotifyAlert.exe -.NET Framework Initialization Error. This tells me to install one of the following versions of .NET Framework: v1.1.4322 or v1.0.3705. The second box is titled rng.exe - .NET etc. with exactly the same instructions to install one of versions. My list of installed programs have .NET Framework 2.0 Service Pack 2; .NET Framework 3.0 Service Pack 2;
and .NET Framework 3.5 SP1. What do I need to get this all "fixed"?
O.K. so if .NET Framework is so dang mecessary, why does it slow my computer down so much? This is really quite aggravating i mean cmon man, i have a 10GB hard drive and this is using 3,468.54Mb.
Wow, thanks a lot Leo, you made complete sense out of the gibberish that is .net, respect.
I do not have any of the .Net Programs on my Win XP SP3 Home Edition computer do I need then and if so how do I get the ones I need? Thanks
i ask the same question net framework 1 isnt on my windows xp so do i need 2 and 3 and now 4 my computer is really slow and what is bonjour
I keep getting a Microsoft .Net Framework 3.5 Service Pack update notice.
When I try to execute it, after a few minutes I'm told the update was not installed.
No explanation.
What a nightmare!
I've been told repeatedly for MONTHS I need to install various .NET Framework versions, but they refuse to install.
In the end I've hidden the ones that wouldn't install from the Windows update process, and uninstalled the remnants of those which DID install.
MY PC is already considerably quicker now, if nothing else!
I have a solid-state drive ACER and in looking for something to free up space noted that there are four versions of the .NET framework.
I took upon myself to uninstall the three older versions.
I don't run many programs with this travel companion.
I guess if I'm instructed to download one of the versions I've deleted I'll have to think about it.
So far everything works just fine.
I have have ignored and hidden updates for .NET Framework on installs of hundreds of machines and NEVER had a problem. "IF" any of the software the average user uses needs .NET Framework, then the included versions in Windows seems to be just fine. If you want to risk a fatal crash by downloading hundreds of megs of useless software taking hours to download and install, knock yourself out.
i currently only need .NET framework 2.0 for a program but lately version 1 and 3.5 keep finding their way on to my netbook, is there any way to stop them being automatically installed??
i receive automatic updates from ms which include office and home updates. can the office updates be deleted from the home updates?
thank you for your reply.
I guess all these versions of .NET framework (3)that I have are reponsible for the "Low Disk Space" message I constantly see popping up of my computer screen. When I look in control panel about these, it reads "rarely"! I need to do something.
I have reformatted my hard drive approximately every two years since purchasing the computer in 2003.
Sometimes I install the .NET Framework and sometimes I don't.
But, I really have to say the desktop runs much better without it and the programs I use regularly run just fine whether or not it's installed.
I haven't found that it affects them one way or the other.
I recently installed microsoft security essentials. I then started to receive a pop up stating ms netframe work is being installed however I get an error message saying cannot complete insert disc, I dont have the disc It popped up after installing ms security the pop up wont leave the screen. What can i do.
I have tried and tried and none of my computers will take this download sucessfully..
i have deleted the .net frame work . need to know whichones to install.
computer running fast but downloading slow?
I, want to know that.. Why we need "DOT NET FRAMEWORK" to install in our system,what kind of work it will do
Just now I have uninstalled Microsoft .NET Framework 2.0 SP1 cuz I have Microsoft .NET Framework 3.0 SP2 and Microsoft .NET Framework 3.5 SP1 thinking that the newer versions will replaces the old one. What negative consequences can I expect on my PC?? Do any of the software depending on them will stop working or what, kindly reply with the troubleshooting tip to overcome
I like your article, very informative and helpful. But the .NET Framework scared me a bit. Ill just leave them as is . . .
The " .NET Framework" takes up too much of my computer space!! I hate it but maybe I need It? I don't know. I'm between the devil and the deep blue sea!
Most of the programs you use probably don't use the .NET Framework, but there are some pretty clever gems out there that you may be using or may want to some day (doubtful any use .Net before 2.0, unless older).
Keeping them in
as for which ones to install, that can get even more confusing with all the updates.
Luckily, you only need the latest update you can find, not every single download.
You can grab the 3.5 Net Framework upgrade that includes updates for 2.0 and 3.0 (filename all_dotnetfx_x86.exe), then run a windows update and you're set.
For most of us, the .NET framework is a waste of space. As Leo has pointed out, they do NOT supersede each other -- in other words, if a program required V2.0, then uninstalling 2.0 will break that program.
Here is the way it works as I understand it:
V1.0 was replace by V1.1.
V2 does NOT replace V1.
V2.0, V3.0 and V3.5 form a pyramid. V2.0 can be installed by itself. V3.0 requires V2.0. V3.5 requires V2.0 AND V3.0
V4.0 stands alone.
Where I disagree with Leo's "just-leave-them-there" advice is that they are notoriously insecure, as evidenced by the endless stream of .NET security patches that issue forth from Redmond
I wouldn't even mind that... but some of those patched aren't really patches after all... but complete implementations of the 2.0+3.0+3.5 pyramid. So if all you want is 2.0, keeping it patched installs 3.0 and 3.5... and removing either of them "removes the patch" -- and windows Update starts hassling you to install the "patch" again.
This is not only grossly dishonest, but a HUGE waste of disk space for something you don't need that has security issues.
My position is a that of Steve Gibson: If you don't need it, remove it. This includes Java, Flash Shockwave, ANYTHING by RealNetworks... and .NET
First of all, you risk nothing by removing .NET - if you find that it is needed, then re-installing it is easy and straightforward.
It comes down to whether you know or care about what is running on your computer. If you are the sort of person who doesn't, by all means install every version of .NET in creation and set Windows Windows patches to "Star Trek mode" (automagically download and install patches). Or better yet, get a Mac.
If, like me, you prefer to make the decisions about what gets to live on your Hard Disk, then .NET is a disaster. I have one program that uses .NET 2.0. I have n but when patching 2.0 adds 3.0 and 3.5 - neither of which I need - without my permission, I take great exception to Microsoft's Cavalier behavior.
My problem is not about whether or not people need .NET; it is that MS is using a "patch" to install versions of .NET that I neither need nor want.
I still want to know how to uninstall the .NET Framework 2.0.
I only installed it a couple of days ago when I was told I needed it for a program I purchased.
I got rid of the program, now I want to get rid of the rest.
I know I don't need it, because everything worked just fine before I downloaded it...better actually.
I'm not a techie, so I'd appreciate some clear steps as how to proceed.
To turn .NET 2.0 off, Open the Control Panel, select Programs and Features or Add/Remove Programs (depending on which version of Windows your are using). Then select features from the left hand side of the Window. Scroll down and uncheck the .NET 2.0 checkbox.
at least one early version of .net was impossible to uninstall. it also corrupted my os. i tried several times to find a manual uninstall procedure and ended up reformatting my hard drive instead. ever since then i have refused to install any application that uses .net. unfortunately .net is neither secure nor is it a cross-platform development standard. my understanding is that it is mainly a set of libraries to allow programmers to more easily access the existing windows libraries. libraries to access libraries... as such there is no reason to even install the .net libraries in the client at all since an application written in .net amounts to interpreted code that could just as easily be compiled to access the non-.net libraries directly instead. could there be any clearer admission of incompetence? no wonder each version of .net is unique and not backward compatible. nobody really knows what windows bloatware even consists of let alone how to use it 'properly' anyway, so it is understandable that it would take multiple tries to develop a consistent 'user interface' for developers. all .net does is allow a programmer to use windows without having to learn about all its arcane idiosyncracies - some of them are allegedly deliberately undocumented to discourage independently written freeware by small developers. windows is still a prime candidate for a(nother) total rewrite, similar to the introduction of nt, which me may witness before the decade is out. maybe some day someone will design a microsoft operating system from a logical specification with a consistent architecture based on standard practices rather than just hacking code until it evolves into something that sort of works well enough to be beta tested in a version 1.0 on an unwary public. the only good thing about windows is plug and play and as hardware standards coalesce that advantage gets smaller all the time... but if they were to start over with something that resembles the .net sdk as the primary programmers interface standard maybe it could be made compatible with cross-platform standards too such as (real) java and (real) c and (real) xml/html instead of the microsoft nonstandard version... and what is with this visual basic anyway? who programs in basic for goodness' sake? that is like playdough
WARNING! DON'T REMOVE ANY OF THEM THAT ARE INSTALLED. Not even a system restore will bring them back if you do. One of the programs on your computer needs it to run right. Found this out the hard way after removing one that I thought I didn't need. eBay's Turbo Lister stopped working correctly what a nightmare. System restore nothing, Framework re install nothing, Program re install nothing. Had to re install OS.
I've been having issues with .NET
My machine (for whatever reason) is steadily accumulating updates for .NET v4 which consistantly fail to install. I am blaming these for the odd times my PC fails to start up - though I could be wrong.
I am also assuming that my machine actually HAS v4 - otherwise why would I be getting updates for it?
Does .NET 4 have any issues with 64-bit Vista?
we use .NET to Develop MS Dynamic Software
I am using Spirit to move programs from a XP32 bit to XP 64bit (tried W7-64bit but not W7 for me) and I want to install ALL the .NET stuff on my new machine before moving so programs are not confused.
Is there a simple 1, 2, 3 procedure to install all the .NET suff, one r if not, how do I just get the basics of each version?
And, what if I leave out some pieces?
And, is there a way to be sure I got all the pieces.
The MS site is a mess in determining this.
any comments are appreciated.
Great site Leo and have found many plain English answers in here from you.
Keep up the good work.
I can't hold back on this one ... Microsoft really irritates me, but I use it because of its plug and play interoperability and because once you start with it (back in the 80's), it is too much of a head banger to change, partic with a heavy archiving and record-keeping business necessity.
I am certain MS relies on that very fact to get away with continuing to deliver such rubbishy programming and architecture in its OS and elsewhere as with .NET Framework, etc.
I would love to ditch the earlier versions of .NET and, in spite of what you say Leo, surely where some applications rely on say, part of version 1, part of version 2 and part of version 3.5, (such as Office), that MUST slow down delivery to the interface, than if located in one single version/folder?
As a slightly off-track aside, to give pause for reflection about MS's abominably cavalier programming manners ...
The massive load of footprint junk the Windows OS leaves behind with normal user usage is criminal.
If you don't clean Windows out regularly, your system is doomed to ultimately crash and burn, aided and abetted by MS bloatware, yet MS never ships any software to deal with this.
The consumer has to look to other applications to clean out the MS garbage, PROPERLY that is.
MS's disk cleaner is pathetic.
Why is that?
Is it any different to Boeing building a great passenger-friendly luxury airliner fitted with a state of the art Rolls Royce jet engine, but which, after x number of years, suffers from engine sludge build-up, so much so that the great wonder falls from the sky and crashes and burns.
Would Boeing and RR remain in business after that?
Thank you for your response, Leo, after which I read further (in here where you can always find the right answers) and realise my error - i.e. that different applications use different versions of .NET Framework, rather than parts from ea. version.
Nevertheless, I have read there is some reason, pertaining to the original structure, as to why they can't toss out the earlier versions and upgrade all to one, which could run applications using the older versions.
On the Boeing analogy that I drew, I agree all equipment requires ongoing maintenance, but you don't mind that if it is from normal wear and tear.
I do mind it when it is due to bad engineering.
Apple Mac's don't have any major footprint build-up of rubbish
left behind from normal use, with no need for regular clean outs of junk.
The usual maintenance is to be expected but compared with MS OS this is so minutae.
If other engineers can do it, then so could MS, (admittedly with a humongous re-write - and that is the point - badly written originally).
I guess that was really the point I was
trying to make.
i have problem starting some programs...it use to work fine ...i do,nt know what happend?...is not clear from your article which net frame should we have?...any way it does not let me install/reinstall...what should i do?
If you have a program which needs .NET, and that version is not installed on your computer, that program should automatically go on line and download that version for you. It would ask your permission so you would know that it's doing it.
trying to figure out what programs I use, uses Net 2, net 3, etc.
Have spent a lot of time on this, would appreciate an answer if possible Leo.
Leo is on sabbatical until beginning of April. You can go ask your question on the question page then.
Comments on this entry are closed.
If you have a question, start by using the search box up at the
top of the page - there's a very good chance that
your question has already been answered on Ask Leo!.
If you don't find your answer, head out to
to ask your question.

我要回帖

更多关于 1.76精品 的文章

 

随机推荐