当前位置: 首页>>代码示例>>C#>>正文


C# INuGetProjectContext类代码示例

本文整理汇总了C#中INuGetProjectContext的典型用法代码示例。如果您正苦于以下问题:C# INuGetProjectContext类的具体用法?C# INuGetProjectContext怎么用?C# INuGetProjectContext使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


INuGetProjectContext类属于命名空间,在下文中一共展示了INuGetProjectContext类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: RestoreMissingPackagesAsync

		public Task RestoreMissingPackagesAsync (
			INuGetAwareProject project,
			INuGetProjectContext context,
			CancellationToken token)
		{
			return project.RestorePackagesAsync (solutionManager, context, token);
		}
开发者ID:PlayScriptRedux,项目名称:monodevelop,代码行数:7,代码来源:NuGetAwareProjectPackageRestoreManager.cs

示例2: CreateFile

        public override Stream CreateFile(string fullPath, INuGetProjectContext nuGetProjectContext)
        {
            // See if there are any pending changes for this file
            var pendingChanges = PrivateWorkspace.GetPendingChanges(fullPath, RecursionType.None).ToArray();
            var pendingDeletes = pendingChanges.Where(c => c.IsDelete).ToArray();

            // We would need to pend an edit if (a) the file is pending delete (b) is bound to source control and does not already have pending edits or adds
            bool sourceControlBound = IsSourceControlBound(fullPath);
            bool requiresEdit = pendingDeletes.Any() || (!pendingChanges.Any(c => c.IsEdit || c.IsAdd) && sourceControlBound);

            // Undo all pending deletes
            if (pendingDeletes.Any())
            {
                PrivateWorkspace.Undo(pendingDeletes);
            }

            // If the file was marked as deleted, and we undid the change or has no pending adds or edits, we need to edit it.
            if (requiresEdit)
            {
                // If the file exists, but there is not pending edit then edit the file (if it is under source control)
                requiresEdit = PrivateWorkspace.PendEdit(fullPath) > 0;
            }

            var fileStream = FileSystemUtility.CreateFile(fullPath);
            // If we didn't have to edit the file, this must be a new file.
            if (!sourceControlBound)
            {
                PrivateWorkspace.PendAdd(fullPath);
            }

            return fileStream;
        }
开发者ID:mauroa,项目名称:NuGet.VisualStudioExtension,代码行数:32,代码来源:TFSSourceControlManagerProvider.cs

示例3: InstallPackageAsync

        public async override Task<bool> InstallPackageAsync(Packaging.Core.PackageIdentity packageIdentity, System.IO.Stream packageStream,
            INuGetProjectContext nuGetProjectContext, CancellationToken token)
        {
            if (!packageStream.CanSeek)
            {
                throw new ArgumentException(NuGet.ProjectManagement.Strings.PackageStreamShouldBeSeekable);
            }

            nuGetProjectContext.Log(MessageLevel.Info, Strings.InstallingPackage, packageIdentity);

            packageStream.Seek(0, SeekOrigin.Begin);
            var zipArchive = new ZipArchive(packageStream);
            PackageReader packageReader = new PackageReader(zipArchive);
            var packageSupportedFrameworks = packageReader.GetSupportedFrameworks();
            var projectFrameworks = _project.GetSupportedFrameworksAsync(token)
                .Result
                .Select(f => NuGetFramework.Parse(f.FullName));

            var args = new Dictionary<string, object>();
            args["Frameworks"] = projectFrameworks.Where(
                projectFramework =>
                    IsCompatible(projectFramework, packageSupportedFrameworks)).ToArray();
            await _project.InstallPackageAsync(
                new NuGetPackageMoniker
                {
                    Id = packageIdentity.Id,
                    Version = packageIdentity.Version.ToNormalizedString()
                },
                args,
                logger: null,
                progress: null,
                cancellationToken: token);
            return true;
        }
开发者ID:mauroa,项目名称:NuGet.VisualStudioExtension,代码行数:34,代码来源:ProjectKNuGetProject.cs

示例4: CreateNuGetProject

		public NuGetProject CreateNuGetProject (DotNetProject project, INuGetProjectContext context)
		{
			Runtime.AssertMainThread ();

			var nugetAwareProject = project as INuGetAwareProject;
			if (nugetAwareProject != null)
				return nugetAwareProject.CreateNuGetProject ();

			var projectSystem = new MonoDevelopMSBuildNuGetProjectSystem (project, context);

			string projectJsonPath = ProjectJsonPathUtilities.GetProjectConfigPath (project.BaseDirectory, project.Name);

			if (File.Exists (projectJsonPath)) {
				return new BuildIntegratedProjectSystem (
					projectJsonPath,
					project.FileName,
					project,
					projectSystem,
					project.Name,
					settings);
			}

			string baseDirectory = GetBaseDirectory (project);
			string folderNuGetProjectFullPath = PackagesFolderPathUtility.GetPackagesFolderPath (baseDirectory, settings);

			string packagesConfigFolderPath = project.BaseDirectory;

			return new MSBuildNuGetProject (
				projectSystem, 
				folderNuGetProjectFullPath, 
				packagesConfigFolderPath);
		}
开发者ID:PlayScriptRedux,项目名称:monodevelop,代码行数:32,代码来源:MonoDevelopNuGetProjectFactory.cs

示例5: CreateRefreshFile

        /// <summary>
        /// Creates a .refresh file in bin directory of the IFileSystem that points to the assembly being installed. 
        /// This works around issues in DTE's AddReference method when dealing with GACed binaries.
        /// </summary>
        /// <remarks>Adds the file to the DTE project system</remarks>
        /// <param name="projectSystem">the web site project system where this will be added</param>
        /// <param name="assemblyPath">The path to the assembly being added</param>
        public static void CreateRefreshFile(WebSiteProjectSystem projectSystem, string assemblyPath, INuGetProjectContext nuGetProjectContext)
        {
            if (projectSystem == null)
            {
                throw new ArgumentNullException("projectSystem");
            }

            if (assemblyPath == null)
            {
                throw new ArgumentNullException("assemblyPath");
            }

            string refreshFilePath = CreateRefreshFilePath(projectSystem.ProjectFullPath, assemblyPath);

            if (!FileSystemUtility.FileExists(projectSystem.ProjectFullPath, refreshFilePath))
            {
                try
                {
                    using (var stream = CreateRefreshFileStream(projectSystem.ProjectFullPath, assemblyPath))
                    {
                        // TODO: log to nuGetProjectContext?
                        projectSystem.AddFile(refreshFilePath, stream);
                    }
                }
                catch (UnauthorizedAccessException exception)
                {
                    // log IO permission error
                    ExceptionHelper.WriteToActivityLog(exception);
                }
            }
        }
开发者ID:mauroa,项目名称:NuGet.VisualStudioExtension,代码行数:38,代码来源:RefreshFileUtility.cs

示例6: InstallPackageByIdentityAsync

        /// <summary>
        /// Install package by Identity
        /// </summary>
        /// <param name="project"></param>
        /// <param name="identity"></param>
        /// <param name="resolutionContext"></param>
        /// <param name="projectContext"></param>
        /// <param name="isPreview"></param>
        /// <param name="isForce"></param>
        /// <param name="uninstallContext"></param>
        /// <returns></returns>
        protected async Task InstallPackageByIdentityAsync(NuGetProject project, PackageIdentity identity, ResolutionContext resolutionContext, INuGetProjectContext projectContext, bool isPreview, bool isForce = false, UninstallationContext uninstallContext = null)
        {
            List<NuGetProjectAction> actions = new List<NuGetProjectAction>();
            // For Install-Package -Force
            if (isForce)
            {
                PackageReference installedReference = project.GetInstalledPackagesAsync(CancellationToken.None).Result.Where(p =>
                    StringComparer.OrdinalIgnoreCase.Equals(identity.Id, p.PackageIdentity.Id)).FirstOrDefault();
                if (installedReference != null)
                {
                    actions.AddRange(await PackageManager.PreviewUninstallPackageAsync(project, installedReference.PackageIdentity, uninstallContext, projectContext, CancellationToken.None));
                }
                NuGetProjectAction installAction = NuGetProjectAction.CreateInstallProjectAction(identity, ActiveSourceRepository);
                actions.Add(installAction);
            }
            else
            {
                actions.AddRange(await PackageManager.PreviewInstallPackageAsync(project, identity, resolutionContext, projectContext, ActiveSourceRepository, null, CancellationToken.None));
            }

            if (isPreview)
            {
                PreviewNuGetPackageActions(actions);
            }
            else
            {
                await PackageManager.ExecuteNuGetProjectActionsAsync(project, actions, this, CancellationToken.None);
            }
        }
开发者ID:mauroa,项目名称:NuGet.VisualStudioExtension,代码行数:40,代码来源:PackageActionBaseCommand.cs

示例7: AddFile

        public static void AddFile(string root, string path, Action<Stream> writeToStream, INuGetProjectContext nuGetProjectContext)
        {
            if (writeToStream == null)
            {
                throw new ArgumentNullException("writeToStream");
            }

            AddFileCore(root, path, writeToStream, nuGetProjectContext);
        }
开发者ID:pabomex,项目名称:NuGet.PackageManagement,代码行数:9,代码来源:FileSystemUtility.cs

示例8: RunPostProcessAsync

		/// <summary>
		/// PostProcessAsync is not run for BuildIntegratedNuGetProjects so we run it directly after
		/// running a NuGet action.
		/// </summary>
		public static Task RunPostProcessAsync (this NuGetProject project, INuGetProjectContext context, CancellationToken token)
		{
			var buildIntegratedProject = project as IBuildIntegratedNuGetProject;
			if (buildIntegratedProject != null) {
				return buildIntegratedProject.PostProcessAsync (context, token);
			}

			return Task.FromResult (0);
		}
开发者ID:FreeBSD-DotNet,项目名称:monodevelop,代码行数:13,代码来源:NuGetProjectExtensions.cs

示例9: IsPackagesFolderBoundToSourceControl

        public static bool IsPackagesFolderBoundToSourceControl(INuGetProjectContext nuGetProjectContext)
        {
            var sourceControlManager = GetSourceControlManager(nuGetProjectContext);
            if (sourceControlManager != null)
            {
                return sourceControlManager.IsPackagesFolderBoundToSourceControl();
            }

            return false;
        }
开发者ID:pabomex,项目名称:NuGet.PackageManagement,代码行数:10,代码来源:SourceControlUtility.cs

示例10: ExecuteNuGetProjectActionsAsync

		public Task ExecuteNuGetProjectActionsAsync (
			NuGetProject nuGetProject,
			IEnumerable<NuGetProjectAction> nuGetProjectActions,
			INuGetProjectContext nuGetProjectContext,
			CancellationToken token)
		{
			return packageManager.ExecuteNuGetProjectActionsAsync (
				nuGetProject,
				nuGetProjectActions,
				nuGetProjectContext,
				token);
		}
开发者ID:FreeBSD-DotNet,项目名称:monodevelop,代码行数:12,代码来源:MonoDevelopNuGetPackageManager.cs

示例11: GetSourceControlManager

        public static SourceControlManager GetSourceControlManager(INuGetProjectContext nuGetProjectContext)
        {
            if (nuGetProjectContext != null)
            {
                var sourceControlManagerProvider = nuGetProjectContext.SourceControlManagerProvider;
                if (sourceControlManagerProvider != null)
                {
                    return sourceControlManagerProvider.GetSourceControlManager();
                }
            }

            return null;
        }
开发者ID:pabomex,项目名称:NuGet.PackageManagement,代码行数:13,代码来源:SourceControlUtility.cs

示例12: InstallNuGetPackageAction

		public InstallNuGetPackageAction (
			IEnumerable<SourceRepository> primarySources,
			IMonoDevelopSolutionManager solutionManager,
			IDotNetProject dotNetProject,
			INuGetProjectContext projectContext)
			: this (
				primarySources,
				null,
				solutionManager,
				dotNetProject,
				projectContext)
		{
		}
开发者ID:FreeBSD-DotNet,项目名称:monodevelop,代码行数:13,代码来源:InstallNuGetPackageAction.cs

示例13: InstallPackageAsync

        public async override Task<bool> InstallPackageAsync(PackageIdentity packageIdentity, Stream packageStream,
            INuGetProjectContext nuGetProjectContext, CancellationToken token)
        {
            if (packageIdentity == null)
            {
                throw new ArgumentNullException("packageIdentity");
            }

            if (packageStream == null)
            {
                throw new ArgumentNullException("packageStream");
            }

            if (nuGetProjectContext == null)
            {
                throw new ArgumentNullException("nuGetProjectContext");
            }

            if (!packageStream.CanSeek)
            {
                throw new ArgumentException(Strings.PackageStreamShouldBeSeekable);
            }

            // 1. Check if the Package already exists at root, if so, return false
            if (PackageExists(packageIdentity))
            {
                nuGetProjectContext.Log(MessageLevel.Warning, Strings.PackageAlreadyExistsInFolder, packageIdentity, Root);
                return false;
            }

            nuGetProjectContext.Log(MessageLevel.Info, Strings.AddingPackageToFolder, packageIdentity, Root);
            // 2. Call PackageExtractor to extract the package into the root directory of this FileSystemNuGetProject
            packageStream.Seek(0, SeekOrigin.Begin);
            var addedPackageFilesList = new List<string>(await PackageExtractor.ExtractPackageAsync(packageStream, packageIdentity, PackagePathResolver, nuGetProjectContext.PackageExtractionContext,
                PackageSaveMode, token));

            if (PackageSaveMode.HasFlag(PackageSaveModes.Nupkg))
            {
                var packageFilePath = GetInstalledPackageFilePath(packageIdentity);
                if (File.Exists(packageFilePath))
                {
                    addedPackageFilesList.Add(packageFilePath);
                }
            }

            // Pend all the package files including the nupkg file
            FileSystemUtility.PendAddFiles(addedPackageFilesList, Root, nuGetProjectContext);

            nuGetProjectContext.Log(MessageLevel.Info, Strings.AddedPackageToFolder, packageIdentity, Root);
            return true;
        }
开发者ID:pabomex,项目名称:NuGet.PackageManagement,代码行数:51,代码来源:FolderNuGetProject.cs

示例14: TestMSBuildNuGetProjectSystem

 public TestMSBuildNuGetProjectSystem(NuGetFramework targetFramework, INuGetProjectContext nuGetProjectContext,
     string projectFullPath = null, string projectName = null)
 {
     TargetFramework = targetFramework;
     References = new Dictionary<string, string>();
     FrameworkReferences = new HashSet<string>();
     Files = new HashSet<string>();
     Imports = new HashSet<string>();
     NuGetProjectContext = nuGetProjectContext;
     ProjectFullPath = String.IsNullOrEmpty(projectFullPath) ? Environment.CurrentDirectory : projectFullPath;
     ScriptsExecuted = new Dictionary<string, int>();
     ProcessedFiles = new HashSet<string>();
     ProjectName = projectName ?? TestProjectName;
 }
开发者ID:pabomex,项目名称:NuGet.PackageManagement,代码行数:14,代码来源:TestMSBuildNuGetProjectSystem.cs

示例15: ReinstallNuGetPackageAction

		public ReinstallNuGetPackageAction (
			IDotNetProject project,
			IMonoDevelopSolutionManager solutionManager,
			INuGetProjectContext projectContext,
			IPackageManagementEvents packageManagementEvents)
		{
			this.context = projectContext;
			this.packageManagementEvents = packageManagementEvents;

			var repositories = solutionManager.CreateSourceRepositoryProvider ().GetRepositories ();

			installAction = CreateInstallAction (solutionManager, project, repositories);
			uninstallAction = CreateUninstallAction (solutionManager, project);
		}
开发者ID:FreeBSD-DotNet,项目名称:monodevelop,代码行数:14,代码来源:ReinstallNuGetPackageAction.cs


注:本文中的INuGetProjectContext类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。