 			for(var i:int = 0; i < assetCount; i++)
 			{
 				var assetPath:String = assetPaths[i];
-				var content:Object = fs.readFileSync(assetPath);
 				if(this._outputIsJS)
 				{
 					var debugOutputDir:String = path.join(outputDirectory, "bin", "js-debug");
-					var targetPath:String = assetPathToOutputPath(assetPath, this._mainFile, sourcePaths, debugOutputDir);
-					mkdirp["sync"](path.dirname(targetPath));
-					fs.writeFileSync(targetPath, content);
+					copySourcePathAssetToOutputDirectory(assetPath, this._mainFile, sourcePaths, debugOutputDir);
 					if(!this._debugBuild)
 					{
 						var releaseOutputDir:String = path.join(outputDirectory, "bin", "js-release");
-						targetPath = assetPathToOutputPath(assetPath, this._mainFile, sourcePaths, releaseOutputDir);
-						mkdirp["sync"](path.dirname(targetPath));
-						fs.writeFileSync(targetPath, content);
+						copySourcePathAssetToOutputDirectory(assetPath, this._mainFile, sourcePaths, releaseOutputDir);
 					}
 				}
 				else
 				{
-					targetPath = assetPathToOutputPath(assetPath, this._mainFile, sourcePaths, outputDirectory);
-					mkdirp["sync"](path.dirname(targetPath));
-					fs.writeFileSync(targetPath, content);
+					copySourcePathAssetToOutputDirectory(assetPath, this._mainFile, sourcePaths, outputDirectory);
 				}
 			}
 		}

		{
			this._compilerArgs = [];
			this._airArgs = [];
			var configData:Object = this.loadConfig();
			this._projectType = this.readProjectType(configData);
			if(ASConfigFields.CONFIG in configData)

			this.compileProject();
			this.copySourcePathAssets();
			this.processDescriptor();
			this.copyAIRFiles();
			if(this._airPlatform !== null)
			{
				this.packageAIR();
