Where to put framework DLL's
Generally speaking Windows will look for DLL's in the EXE's directory or on the PATH environment variable. This means that frameworks do not work as-is on Windows, you need to shuffle files around to execute a program which uses frameworks.
NSBundle implements a couple strategies to deal with this but the simplest is to put the frameworks in the executable's directory like so:
MyApp.app/Contents/Windows/MyApp.exe
MyApp.app/Contents/Windows/AppKit.1.0.dll
MyApp.app/Contents/Windows/AppKit.framework
MyApp.app/Contents/Windows/Foundation.1.0.dll
MyApp.app/Contents/Windows/Foundation.framework
MyApp.app/Contents/Windows/AppKit.1.0.dll
MyApp.app/Contents/Windows/AppKit.framework
MyApp.app/Contents/Windows/Foundation.1.0.dll
MyApp.app/Contents/Windows/Foundation.framework
Windows will find the DLL's and the NSBundle code will look for the .framework/ directories for resources
See the retargetBundle page for information on a tool which will do this automatically for you during the build process.