コード例 #1
0
        public override DeployFileCollection GetProjectDeployFiles(DeployContext ctx, Project project, ConfigurationSelector configuration)
        {
            var deployFiles = new DeployFileCollection();

            base.GetProjectDeployFiles(ctx, project, configuration);

            // Add the compiled output files

            var pconf   = (ProjectConfiguration)project.GetConfiguration(configuration);
            var evalCtx = new TargetEvaluationContext();

            evalCtx.ItemsToEvaluate.Add("AllPublishItemsFullPathWithTargetPath");

            if (project.MSBuildProject.UseMSBuildEngine)
            {
                var result = project.RunTarget(new ProgressMonitor(), "GetCopyToPublishDirectoryItems", configuration, evalCtx).Result;
                foreach (var item in result.Items)
                {
                    if (item.Name == "AllPublishItemsFullPathWithTargetPath")
                    {
                        var fromPath = MSBuildProjectService.FromMSBuildPath(project.ItemDirectory, item.Include);
                        var toPath   = item.Metadata.GetPathValue("TargetPath", relativeToPath: pconf.OutputDirectory);
                        deployFiles.Add(new DeployFile(project, fromPath, toPath, TargetDirectory.ProgramFiles));
                    }
                }
            }
            else
            {
#pragma warning disable 618 //obsolete
                FilePath outDir = pconf.OutputDirectory;
                foreach (FilePath file in project.GetOutputFiles(configuration))
                {
                    deployFiles.Add(new DeployFile(project, file, file.ToRelative(outDir), TargetDirectory.ProgramFiles));
                }
                foreach (FileCopySet.Item item in project.GetSupportFileList(configuration))
                {
                    deployFiles.Add(new DeployFile(project, item.Src, item.Target, TargetDirectory.ProgramFiles));
                }
#pragma warning restore 618
            }

            // Collect deployable files
            foreach (ProjectFile file in project.Files)
            {
                // skip CopyToOutputDirectory files when it's just a project build, because
                // MonoDevelop.Project.Projects already copies these files using more subtle overwriting
                // semantics
                if (file.CopyToOutputDirectory != FileCopyMode.None)
                {
                    continue;
                }

                var props = new DeployProperties(file);
                if (props.ShouldDeploy)
                {
                    var dp = new DeployFile(file);
                    deployFiles.Add(dp);
                }
            }

            return(deployFiles);
        }
コード例 #2
0
 public DeployFileCollection(DeployFileCollection other) : base(other)
 {
 }
コード例 #3
0
 internal void CopyFiles(ProgressMonitor monitor, IFileReplacePolicy replacePolicy, FileCopyConfiguration copyConfig, DeployFileCollection files, DeployContext context)
 {
     handler.CopyFiles(monitor, replacePolicy, copyConfig, files, context);
 }
コード例 #4
0
 public void CopyFiles(IProgressMonitor monitor, IFileReplacePolicy replacePolicy, DeployFileCollection files, DeployContext context)
 {
     Handler.CopyFiles(monitor, replacePolicy, this, files, context);
 }