string GenerateUniqueIdByAppendingNumberToFileNameId(string fileNameId)
        {
            string id    = String.Empty;
            int    count = 0;
            string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(fileNameId);
            string extension = Path.GetExtension(fileNameId);

            do
            {
                ++count;
                id = String.Concat(fileNameWithoutExtension, count, extension);
            } while (OwnerWixDocument.FileIdExists(id));

            return(id);
        }
        /// <summary>
        /// Generates a unique id for the entire document that this file element
        /// belongs to.
        /// </summary>
        /// <param name="parentDirectory">The full path of the parent directory
        /// for the filename.</param>
        /// <param name="fileName">The name of the file to generate a unique
        /// id for. This does not include any path.</param>
        string GenerateUniqueId(string parentDirectory, string fileName)
        {
            string id = GenerateId(fileName);

            if (!OwnerWixDocument.FileIdExists(id))
            {
                return(id);
            }

            id = GenerateIdFromParentDirectory(parentDirectory, id);
            if (!OwnerWixDocument.FileIdExists(id))
            {
                return(id);
            }

            return(GenerateUniqueIdByAppendingNumberToFileNameId(id));
        }