public virtual void EmitFile([NotNull] IEmitContext context, [NotNull] Projects.Files.File file)
        {
            var sourceFileAbsoluteFileName = file.Snapshot.SourceFile.AbsoluteFileName;

            var fileName = PathHelper.NormalizeFilePath(file.FilePath);

            if (fileName.StartsWith("~\\"))
            {
                fileName = fileName.Mid(2);
            }

            _files.Add('/' + fileName);

            Trace.TraceInformation(Msg.I1011, "Publishing", "~\\" + fileName);

            Zip.AddEntry("files/" + NormalizeZipPath(fileName), sourceFileAbsoluteFileName);

            using (var stream = new MemoryStream())
            {
                using (var writer = new StreamWriter(stream))
                {
                    writer.WriteLine("type=file");
                }

                Zip.AddEntry("properties/files/" + NormalizeZipPath(fileName), stream.ToArray());
            }
        }
        public virtual void EmitFile([NotNull] IEmitContext context, [NotNull] Projects.Files.File file)
        {
            var fileName = PathHelper.NormalizeFilePath(file.FilePath);

            if (fileName.StartsWith("~\\"))
            {
                fileName = fileName.Mid(2);
            }

            Trace.TraceInformation(Msg.I1011, "Publishing", "~\\" + fileName);

            var forceUpdate         = Configuration.GetBool(Constants.Configuration.BuildProject.ForceUpdate, true);
            var destinationFileName = PathHelper.Combine(OutputDirectory, fileName);

            FileSystem.CreateDirectoryFromFileName(destinationFileName);
            FileSystem.Copy(file.Snapshot.SourceFile.AbsoluteFileName, destinationFileName, forceUpdate);
        }