示例#1
0
        private void ProcessFiles(IEnumerable <ManifestInput> inputs)
        {
            foreach (ManifestInput input in inputs)
            {
                foreach (ManifestInput.InputFile inputFile in input.Files)
                {
                    string fullPath = Path.Combine(_cmdLine.DistributionDirectory, inputFile.Name);

                    if (!File.Exists(fullPath))
                    {
                        if (!Directory.Exists(fullPath) && !inputFile.Ignore)
                        {
                            throw new ApplicationException("File in manifest not in distribution: " + inputFile.Name + " (" + fullPath + ")");
                        }

                        ManifestFile directory = new ManifestFile
                        {
                            Ignore   = inputFile.Ignore,
                            Filename = inputFile.Name
                        };
                        if (_manifest.ProductManifest != null)
                        {
                            _manifest.ProductManifest.Files.Add(directory);
                        }
                        else if (_manifest.PackageManifest != null)
                        {
                            _manifest.PackageManifest.Files.Add(directory);
                        }
                        continue;
                    }

                    FileVersionInfo versionInfo = FileVersionInfo.GetVersionInfo(fullPath);

                    FileInfo     info = new FileInfo(fullPath);
                    ManifestFile file = new ManifestFile
                    {
                        Ignore   = inputFile.Ignore,
                        Filename = inputFile.Name,
                    };

                    if (inputFile.Checksum)
                    {
                        file.Timestamp = info.CreationTimeUtc;
                        file.GenerateChecksum(fullPath);
                        file.Version   = versionInfo.FileVersion;
                        file.Copyright = versionInfo.LegalCopyright;
                    }

                    if (_manifest.ProductManifest != null)
                    {
                        _manifest.ProductManifest.Files.Add(file);
                        // Set the default product name, based on the product name in the
                        // common assembly
                        if (file.Filename.ToLower().Equals("common\\clearcanvas.common.dll"))
                        {
                            _manifest.ProductManifest.Product.Name = versionInfo.ProductName;
                        }
                    }
                    else if (_manifest.PackageManifest != null)
                    {
                        _manifest.PackageManifest.Files.Add(file);
                    }
                }
            }
        }
        private void ProcessFiles(IEnumerable<ManifestInput> inputs)
        {
            foreach (ManifestInput input in inputs)
            {
                foreach(ManifestInput.InputFile inputFile in input.Files)
                {
                    string fullPath = Path.Combine(_cmdLine.DistributionDirectory, inputFile.Name);
                   
                    if (!File.Exists(fullPath))
                    {
                        if (!Directory.Exists(fullPath) && !inputFile.Ignore)
                            throw new ApplicationException("File in manifest not in distribution: " + inputFile.Name + " (" + fullPath +")");

                        ManifestFile directory = new ManifestFile
                                                     {
                                                         Ignore = inputFile.Ignore,
                                                         Filename = inputFile.Name
                                                     };
                        if (_manifest.ProductManifest != null)
                            _manifest.ProductManifest.Files.Add(directory);
                        else if (_manifest.PackageManifest != null)
                            _manifest.PackageManifest.Files.Add(directory);
                        continue;
                    }

                    FileVersionInfo versionInfo = FileVersionInfo.GetVersionInfo(fullPath);

                    FileInfo info = new FileInfo(fullPath);
                    ManifestFile file = new ManifestFile
                                            {
                                                Ignore = inputFile.Ignore,
                                                Filename = inputFile.Name,                                                
                                            };

                    if (inputFile.Checksum)
                    {
                        file.Timestamp = info.CreationTimeUtc;
                        file.GenerateChecksum(fullPath);
                        file.Version = versionInfo.FileVersion;
                        file.Copyright = versionInfo.LegalCopyright;
                    }

                    if (_manifest.ProductManifest != null)
                    {
                        _manifest.ProductManifest.Files.Add(file);
                        // Set the default product name, based on the product name in the 
                        // common assembly
                        if (file.Filename.ToLower().Equals("common\\clearcanvas.common.dll"))
                            _manifest.ProductManifest.Product.Name = versionInfo.ProductName;
                    }
                    else if (_manifest.PackageManifest != null)
                        _manifest.PackageManifest.Files.Add(file);
                }
            }
        }