Question: I want to develop a small utility for windows and I prefer doing that in c# because it is easier (I'm a java developer). 

The utility will be available for download by many people and I assume some of them will not have the .net framework installed (is this assumption correct, say I target win xp and above?)

My question is: can a c# application be compiled in a way that it will not require the .net framework installed?

Answer: 
Normally, you will need the .NET Framework being installed on the target system. There is no simple way around that. 

However, certain third-party tools such as Xenocode or Salamander allow you to create stand-alone applications. See this related question:

> 
> [Is there some way to compile a .NET application to native code?](https://stackoverflow.com/questions/45702/is-there-some-way-to-compile-a-net-application-to-native-code)
> 
> 
> 

As these solutions are not straight-forward and require commercial products I would recommend you to create a simple Visual Studio *Setup and Deployment* project. In the properties of the project you should include the .NET Framework as a pre-requisite. The setup.exe created will then automatically download and install the .NET Framework prior to installing your application.
You can probably also include the .net framework installer in your application.