示例#1
0
        public NuGetProject CreateNuGetProject(EnvDTEProject envDTEProject, INuGetProjectContext nuGetProjectContext = null)
        {
            if (nuGetProjectContext == null)
            {
                nuGetProjectContext = EmptyNuGetProjectContext;
            }

            var projectK = GetProjectKProject(envDTEProject);

            if (projectK != null)
            {
                return(new ProjectKNuGetProject(projectK, envDTEProject.Name, envDTEProject.UniqueName));
            }

            var msBuildNuGetProjectSystem  = MSBuildNuGetProjectSystemFactory.CreateMSBuildNuGetProjectSystem(envDTEProject, nuGetProjectContext);
            var folderNuGetProjectFullPath = _packagesPath();
            var packagesConfigFiles        = EnvDTEProjectUtility.GetPackageReferenceFileFullPaths(envDTEProject);

            // Item1 is path to "packages.<projectName>.config". Item2 is path to "packages.config"
            string packagesConfigWithProjectNameFullPath = packagesConfigFiles.Item1;
            string packagesConfigFullPath = packagesConfigFiles.Item2;

            var msBuildNuGetProject = new MSBuildNuGetProject(msBuildNuGetProjectSystem, folderNuGetProjectFullPath,
                                                              File.Exists(packagesConfigWithProjectNameFullPath) ? packagesConfigWithProjectNameFullPath : packagesConfigFullPath);

            return(msBuildNuGetProject);
        }