The Deployment tool is very smart on what files need to be packaged depending on the objects you want to deploy and the properties where objects are used. For instance if you're using Web Notifications in your application and have set some of the properties involved in the process, like Received Handler, the generated files for the objects set in those properties are also included in the package.
But there are times when you need to add files that are not referenced by any object in your Knowledge Base, in that case, you need to add additional files to the final package, and this document will show you how to do it.
GeneXus has the File object which is used for that exact reason. Let's say you're using a custom JDBC driver that you had to download yourself, or there's an external JAR you need for your application to work.
The File object allows you to keep that file in your knowledge base and using the Extract property so you don't have to worry about copying that file in new environments or share it with new users of your Knowledge Base.
File object can now be added as a regular object in the Deployment tool dialog. That actual file associated with this GeneXus's File will be found in your application web folder, it should be already there if you already built something, and will be added to the exact same location in your package.
Let's say you need your app to work with a zip file called myFile.zip that need to be under a folder called 'MyStuff'.
1) First, you need to add this file to the Knowledge Base
2) Set the newly created File's Extract property to MyStuff. This step will make GeneXus create the MyStuff folder under your web folder and copy the zip file there. You can also set if you want GeneXus to extract it always or only when there is a newer version of it.
3) Add the desired main object to deploy to the Deployment Tool Dialog (Build -> Deploy Application) and add also the required file (by default it will be called myFile_zip)
4) Hit Deploy, and that's it. GeneXus will create your package creating the MyStuff folder and the myFile.zip inside of it.