Loading texture resource runtime?

I know we can use script to load an image for example, but they have to be stored in the Resources folder. However, if I build the game into an exe, those file resources are no longer accessible. Then, I could no longer “modify the images” without building the game again via Unity. How can I workaround that?

edit: To clarify, if the game reads from an XML and decides which image to load (say I want to change/add a new portrait for a character, or even allow modders to change it when the game is released), I can neither change the image itself, or add new images (with different file names). These images has to be hardcoded before we build the exe, and no longer being data-driven.

You can use AssetBundles, or use Texture2D.LoadImage() to load a png or jpeg.

If you want to do something more clever, you can also create empty textures and pass the NativeTextureID rebuild them in native code.