• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C# SharedPackageRepository类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: CallAddPackageWillAddNuspecWhichHasReferencesData

        public void CallAddPackageWillAddNuspecWhichHasReferencesData()
        {
            // Arrange
            var fileSystem = new MockFileSystem("x:\\root");
            var configFileSystem = new MockFileSystem();
            var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem), fileSystem, configFileSystem);

            // Act
            repository.AddPackage(PackageUtility.CreatePackage("A",
                                                               "1.0",
                                                               assemblyReferences: new[] { "lib\\net40\\A.dll", "lib\\B.dll" }));

            // Assert
            Assert.True(fileSystem.FileExists("A.1.0\\A.1.0.nuspec"));

            Stream manifestContentStream = fileSystem.OpenFile("A.1.0\\A.1.0.nuspec");
            Manifest manifest = Manifest.ReadFrom(manifestContentStream, validateSchema: true);

            Assert.Equal(2, manifest.Metadata.ReferenceSets.Count);

            var set1 = manifest.Metadata.ReferenceSets[0];
            Assert.Equal(".NETFramework4.0", set1.TargetFramework);
            Assert.Equal(1, set1.References.Count);
            Assert.Equal("A.dll", set1.References[0].File);

            var set2 = manifest.Metadata.ReferenceSets[1];
            Assert.Null(set2.TargetFramework);
            Assert.Equal(1, set2.References.Count);
            Assert.Equal("B.dll", set2.References[0].File);
        }
开发者ID:shrknt35,项目名称:sonarlint-vs,代码行数:30,代码来源:SharedPackageRepositoryTest.cs


示例2: GetRepositoryPathsRemovesInvalidOrNonExistantPathsAndReturnsRelativePaths

        public void GetRepositoryPathsRemovesInvalidOrNonExistantPathsAndReturnsRelativePaths()
        {
            // Arrange
            var fileSystem = new Mock<MockFileSystem>() { CallBase = true };
            fileSystem.Setup(m => m.FileExists(@"A\packages.config")).Returns(true);
            fileSystem.Setup(m => m.FileExists(@"c:\foo\packages.config")).Returns(true);
            fileSystem.Setup(m => m.FileExists(@"..\..\packages.config")).Returns(true);
            fileSystem.Object.AddFile("repositories.config", @"<?xml version=""1.0"" encoding=""utf-8""?>
<repositories>
  <repository path=""A\packages.config"" />
  <repository path=""B\packages.config"" />
  <repository path=""c:\foo\packages.config"" />
  <repository path=""..\..\packages.config"" />
  <repository path="""" />
  <repository />
</repositories>");
            fileSystem.Setup(m => m.Root).Returns(@"c:\foo\bar\baz\");
            var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem.Object), fileSystem.Object);

            // Act
            var paths = repository.GetRepositoryPaths().ToList();

            // Assert
            Assert.Equal(2, paths.Count);
            Assert.Equal(@"A\packages.config", paths[0]);
            Assert.Equal(@"..\..\packages.config", paths[1]);
            Assert.Equal(@"<?xml version=""1.0"" encoding=""utf-8""?>
<repositories>
  <repository path=""A\packages.config"" />
  <repository path=""c:\foo\packages.config"" />
</repositories>", fileSystem.Object.ReadAllText("repositories.config"));
        }
开发者ID:monoman,项目名称:NugetCracker,代码行数:32,代码来源:SharedRepositoryTest.cs


示例3: ExecuteCommand

        public override void ExecuteCommand()
        {
            if (!String.IsNullOrEmpty(Arguments[0]))
            {
                var solutionFile = new FileInfo(Arguments[0]);
                if (solutionFile.Exists && solutionFile.Extension == ".sln")
                {
                    var solutionRoot = solutionFile.Directory;
                    var sharedPackagesRepository = new SharedPackageRepository(Path.Combine(solutionRoot.FullName, "packages"));
                    var solution = new Solution(solutionFile.FullName);
                    var simpleProjectObjects = solution.Projects;

                    Console.WriteLine("Processing {0} projects in solution {1}...", simpleProjectObjects.Count, solutionFile.Name);
                    foreach (var simpleProject in simpleProjectObjects)
                    {
                        var manifestDependencies = new List<ManifestDependency>();
                        var projectPath = Path.Combine(solutionFile.Directory.FullName, simpleProject.RelativePath);
                        if (File.Exists(projectPath))
                        {
                            Console.WriteLine();
                            Console.WriteLine("Processing Project: {0}", simpleProject.ProjectName);
                            var projectFileInfo = new FileInfo(projectPath);
                            var project = new Project(projectPath,new Dictionary<string, string>(),null,new ProjectCollection());
                            var assemblyOutput = project.GetPropertyValue("AssemblyName");

                            var references = project.GetItems("Reference");

                            var resolvedMappings = ResolveReferenceMappings(references, projectFileInfo);

                            if (resolvedMappings != null && resolvedMappings.Any())
                            {
                                UpdateProjectFileReferenceHintPaths(solutionRoot, project, projectPath, resolvedMappings, references);
                                var projectReferences = ParseProjectReferences(project);
                                CreateNuGetScaffolding(sharedPackagesRepository, manifestDependencies, resolvedMappings, projectFileInfo, project, projectReferences);
                            }

                            //Create nuspec regardless of whether we have added dependencies
                            if (NuSpec)
                            {
                                CreateAndOutputNuSpecFile(assemblyOutput, manifestDependencies);
                            }

                            Console.WriteLine("Project completed!");
                        }
                        else
                        {
                            Console.WriteWarning("Project: {0} was not found on disk", simpleProject.ProjectName);
                        }
                    }
                    Console.WriteLine("Complete!");
                }
                else
                {
                    Console.WriteError("Could not find solution file : {0}", solutionFile);
                }
            }
        }
开发者ID:kl4w,项目名称:NuGet.Extensions,代码行数:57,代码来源:Nugetify.cs


示例4: CallAddPackageWillAddNupkgFileButNoNuspecFile

        public void CallAddPackageWillAddNupkgFileButNoNuspecFile(string id, string version, string nuspecPath, string nupkgPath)
        {
            // Arrange
            var fileSystem = new MockFileSystem("x:\\root");
            var configFileSystem = new MockFileSystem();
            var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem), fileSystem, configFileSystem);
            
            // Act            
            repository.AddPackage(PackageUtility.CreatePackage(id, version));

            // Assert
            Assert.False(fileSystem.FileExists(nuspecPath));
            Assert.True(fileSystem.FileExists(nupkgPath));
        }
开发者ID:riteshparekh,项目名称:NuGet,代码行数:14,代码来源:SharedPackageRepositoryTest.cs


示例5: CallAddPackageWillNotCreatePackageConfigEntryToPackageConfig

        public void CallAddPackageWillNotCreatePackageConfigEntryToPackageConfig()
        {
            // Arrange
            var fileSystem = new Mock<MockFileSystem>() { CallBase = true };
            fileSystem.Setup(m => m.Root).Returns(@"c:\foo\");
            var configFileSystem = new MockFileSystem();
            var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem.Object), fileSystem.Object, configFileSystem);

            // Act
            repository.AddPackage(PackageUtility.CreatePackage("A", "2.0"));

            // Assert
            Assert.False(configFileSystem.FileExists("packages.config"));
        }
开发者ID:xero-github,项目名称:Nuget,代码行数:14,代码来源:SharedPackageRepositoryTest.cs


示例6: GetRepositoryInfo

        private RepositoryInfo GetRepositoryInfo()
        {
            // Update the path if it needs updating
            string path = _repositorySettings.RepositoryPath;

            if (_repositoryInfo == null || !_repositoryInfo.Path.Equals(path)) {
                IFileSystem fileSystem = _fileSystemProvider.GetFileSystem(path);
                ISharedPackageRepository repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem), fileSystem);

                _repositoryInfo = new RepositoryInfo(path, fileSystem, repository);
            }

            return _repositoryInfo;
        }
开发者ID:jacksonh,项目名称:nuget,代码行数:14,代码来源:VsPackageManagerFactory.cs


示例7: CallRemovePackageWillRemoveNupkgFile

        public void CallRemovePackageWillRemoveNupkgFile(string id, string version, string unexpectedPath)
        {
            // Arrange
            var fileSystem = new MockFileSystem("x:\root");
            fileSystem.AddFile(unexpectedPath);
            var configFileSystem = new MockFileSystem();
            var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem), fileSystem, configFileSystem);

            // Act
            repository.RemovePackage(PackageUtility.CreatePackage(id, version));

            // Assert
            Assert.False(fileSystem.FileExists(unexpectedPath));
        }
开发者ID:nickfloyd,项目名称:NuGet,代码行数:14,代码来源:SharedPackageRepositoryTest.cs


示例8: RegisterRepositoryAddsRelativePathToRepositoriesConfig

        public void RegisterRepositoryAddsRelativePathToRepositoriesConfig()
        {
            // Arrange
            var fileSystem = new Mock<MockFileSystem>() { CallBase = true };
            fileSystem.Setup(m => m.Root).Returns(@"c:\foo\");
            var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem.Object), fileSystem.Object);

            // Act
            repository.RegisterRepository(@"c:\foo\packages\packages.config");

            // Assert
            Assert.Equal(@"<?xml version=""1.0"" encoding=""utf-8""?>
<repositories>
  <repository path=""packages\packages.config"" />
</repositories>", fileSystem.Object.ReadAllText("repositories.config"));
        }
开发者ID:monoman,项目名称:NugetCracker,代码行数:16,代码来源:SharedRepositoryTest.cs


示例9: AddedNuspecDoesNotAddReferencesSectionIfNotPresent

        public void AddedNuspecDoesNotAddReferencesSectionIfNotPresent()
        {
            // Arrange
            var fileSystem = new MockFileSystem("x:\\root");
            var configFileSystem = new MockFileSystem();
            var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem), fileSystem, configFileSystem);

            // Act
            var package = PackageUtility.CreatePackage("A", "1.0", content: new[] { "A.txt", "scripts\\b.txt" });
            repository.AddPackage(package);

            // Assert
            Assert.True(fileSystem.FileExists("A.1.0\\A.1.0.nuspec"));

            Stream manifestContentStream = fileSystem.OpenFile("A.1.0\\A.1.0.nuspec");
            Manifest manifest = Manifest.ReadFrom(manifestContentStream, validateSchema: true);

            Assert.Equal(0, manifest.Metadata.ReferenceSets.Count);
        }
开发者ID:anurse,项目名称:NuGet,代码行数:19,代码来源:SharedPackageRepositoryTest.cs


示例10: CallAddPackageWillNotAddEntryToPackageConfigWhenPackageConfigAlreadyExists

        public void CallAddPackageWillNotAddEntryToPackageConfigWhenPackageConfigAlreadyExists()
        {
            // Arrange
            var fileSystem = new Mock<MockFileSystem>() { CallBase = true };
            fileSystem.Setup(m => m.Root).Returns(@"c:\foo\");
            var configFileSystem = new MockFileSystem();
            configFileSystem.AddFile("packages.config", @"<?xml version=""1.0"" encoding=""utf-8""?>
<packages>
  <package id=""A"" version=""2.0"" />
</packages>");
            var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem.Object), fileSystem.Object, configFileSystem);

            // Act
            repository.AddPackage(PackageUtility.CreatePackage("B", "1.0"));

            // Assert
            Assert.True(configFileSystem.FileExists("packages.config"));
            Assert.Equal(@"<?xml version=""1.0"" encoding=""utf-8""?>
<packages>
  <package id=""A"" version=""2.0"" />
</packages>", configFileSystem.ReadAllText("packages.config"));
        }
开发者ID:xero-github,项目名称:Nuget,代码行数:22,代码来源:SharedPackageRepositoryTest.cs


示例11: CallAddPackageWillAddNuspecWithReferencesPreserved

        public void CallAddPackageWillAddNuspecWithReferencesPreserved()
        {
            // Arrange
            var fileSystem = new MockFileSystem("x:\\root");
            var configFileSystem = new MockFileSystem();
            var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem), fileSystem, configFileSystem);

            // Act
            var package = PackageUtility.CreatePackage("A", "1.0", content: new[] { "A.txt", "scripts\\b.txt" });
            var mockedPackage = Mock.Get(package);
            mockedPackage.Setup(m => m.PackageAssemblyReferences).Returns(
                new PackageReferenceSet[] { 
                    new PackageReferenceSet(new FrameworkName(".NETFramework, Version=4.0"), new [] { "A.dll" }),
                    new PackageReferenceSet(null, new [] { "B.dll" }),
                });

            // Act
            repository.AddPackage(package);

            // Assert
            Assert.False(fileSystem.FileExists("A.1.0\\A.1.0.nuspec"));
            Assert.True(fileSystem.FileExists("A.1.0\\A.1.0.nupkg"));
        }
开发者ID:riteshparekh,项目名称:NuGet,代码行数:23,代码来源:SharedPackageRepositoryTest.cs


示例12: CallAddPackageWillAddNuspecWhichHasReferencesData

        public void CallAddPackageWillAddNuspecWhichHasReferencesData()
        {
            // Arrange
            var fileSystem = new MockFileSystem("x:\root");
            var configFileSystem = new MockFileSystem();
            var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem), fileSystem, configFileSystem);

            // Act
            repository.AddPackage(PackageUtility.CreatePackage("A", 
                                                               "1.0", 
                                                               assemblyReferences: new [] { "net40\\A.dll", "sl45\\B.dll", "A.dll", "win8\\C.dll" }));

            // Assert
            Assert.True(fileSystem.FileExists("A.1.0\\A.1.0.nuspec"));

            Stream manifestContentStream = fileSystem.OpenFile("A.1.0\\A.1.0.nuspec");
            Manifest manifest = Manifest.ReadFrom(manifestContentStream);

            Assert.Equal(3, manifest.Metadata.References.Count);
            Assert.Equal("A.dll", manifest.Metadata.References[0].File);
            Assert.Equal("B.dll", manifest.Metadata.References[1].File);
            Assert.Equal("C.dll", manifest.Metadata.References[2].File);
        }
开发者ID:nickfloyd,项目名称:NuGet,代码行数:23,代码来源:SharedPackageRepositoryTest.cs


示例13: CallAddPackageWillAddNuspecWithReferencesPreserved

        public void CallAddPackageWillAddNuspecWithReferencesPreserved()
        {
            // Arrange
            var fileSystem = new MockFileSystem("x:\\root");
            var configFileSystem = new MockFileSystem();
            var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem), fileSystem, configFileSystem);

            // Act
            var package = PackageUtility.CreatePackage("A", "1.0", content: new[] { "A.txt", "scripts\\b.txt" });
            var mockedPackage = Mock.Get(package);
            mockedPackage.Setup(m => m.PackageAssemblyReferences).Returns(
                new PackageReferenceSet[] { 
                    new PackageReferenceSet(new FrameworkName(".NETFramework, Version=4.0"), new [] { "A.dll" }),
                    new PackageReferenceSet(null, new [] { "B.dll" }),
                });

            repository.AddPackage(package);

            // Assert
            Assert.True(fileSystem.FileExists("A.1.0\\A.1.0.nuspec"));

            Stream manifestContentStream = fileSystem.OpenFile("A.1.0\\A.1.0.nuspec");
            Manifest manifest = Manifest.ReadFrom(manifestContentStream, validateSchema: true);

            Assert.Equal(2, manifest.Metadata.ReferenceSets.Count);

            var set1 = manifest.Metadata.ReferenceSets[0];
            Assert.Equal(".NETFramework4.0", set1.TargetFramework);
            Assert.Equal(1, set1.References.Count);
            Assert.Equal("A.dll", set1.References[0].File);

            var set2 = manifest.Metadata.ReferenceSets[1];
            Assert.Null(set2.TargetFramework);
            Assert.Equal(1, set2.References.Count);
            Assert.Equal("B.dll", set2.References[0].File);
        }
开发者ID:anurse,项目名称:NuGet,代码行数:36,代码来源:SharedPackageRepositoryTest.cs


示例14: RemovingAllSolutionLevelPackageDeletesConfigFile

        public void RemovingAllSolutionLevelPackageDeletesConfigFile()
        {
            // Arrange
            var fileSystem = new MockFileSystem();
            var configFileSystem = new MockFileSystem();
            var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem), fileSystem, configFileSystem);
            var solutionPackage = PackageUtility.CreatePackage("SolutionLevel", tools: new[] { "Install.ps1" });
            configFileSystem.AddFile("packages.config", @"<?xml version=""1.0"" encoding=""utf-8""?>
<packages>
  <package id=""SolutionLevel"" version=""1.0"" />
</packages>");

            // Act
            repository.RemovePackage(solutionPackage);

            // Assert
            Assert.True(configFileSystem.Deleted.Contains("packages.config"));
        }
开发者ID:riteshparekh,项目名称:NuGet,代码行数:18,代码来源:SharedPackageRepositoryTest.cs


示例15: AddPackageReferenceEntryAddsReferenceToPackagesConfigFile

        public void AddPackageReferenceEntryAddsReferenceToPackagesConfigFile()
        {
            // Arrange
            var fileSystem = new MockFileSystem();
            var configFileSystem = new MockFileSystem();
            var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem), fileSystem, configFileSystem);
            var solutionPackage = PackageUtility.CreatePackage("SolutionLevel", tools: new[] { "Install.ps1" });

            // Act
            repository.AddPackageReferenceEntry(solutionPackage.Id, solutionPackage.Version);
            Assert.Equal(@"<?xml version=""1.0"" encoding=""utf-8""?>
<packages>
  <package id=""SolutionLevel"" version=""1.0"" />
</packages>", configFileSystem.ReadAllText("packages.config"));
        }
开发者ID:riteshparekh,项目名称:NuGet,代码行数:15,代码来源:SharedPackageRepositoryTest.cs


示例16: AddPackageDoesNotAddEntryToSolutionConfigFileForProjectLevelPackage

        public void AddPackageDoesNotAddEntryToSolutionConfigFileForProjectLevelPackage()
        {
            // Arrange
            var fileSystem = new MockFileSystem();
            var configFileSystem = new MockFileSystem();
            var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem), fileSystem, configFileSystem);
            var solutionPackage = PackageUtility.CreatePackage("SolutionLevel", content: new[] { "file.txt" });

            // Act
            repository.AddPackage(solutionPackage);

            // Assert
            Assert.False(configFileSystem.FileExists("packages.config"));
        }
开发者ID:riteshparekh,项目名称:NuGet,代码行数:14,代码来源:SharedPackageRepositoryTest.cs


示例17: AddPackageDoesNotAddReferencesToMetadataPackagesToSolutionConfigFile

        public void AddPackageDoesNotAddReferencesToMetadataPackagesToSolutionConfigFile()
        {
            // Arrange
            var fileSystem = new MockFileSystem();
            var configFileSystem = new MockFileSystem();
            var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem), fileSystem, configFileSystem);
            var solutionPackage = PackageUtility.CreatePackage("MetadataPackage", dependencies: new [] { new PackageDependency("A") }, tools: new[] { "Install.ps1" });

            // Act
            repository.AddPackage(solutionPackage);

            // Assert
            Assert.False(configFileSystem.FileExists("packages.config"));
        }
开发者ID:riteshparekh,项目名称:NuGet,代码行数:14,代码来源:SharedPackageRepositoryTest.cs


示例18: AddPackageAddSolutionLevelPackageDependingOnProjectLevelPackage

        public void AddPackageAddSolutionLevelPackageDependingOnProjectLevelPackage()
        {
            // Arrange
            var fileSystem = new MockFileSystem();
            var configFileSystem = new MockFileSystem();
            var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem), fileSystem, configFileSystem);
            var solutionPackage = PackageUtility.CreatePackage("SolutionLevel2", tools: new[] { "Install.ps1" }, dependencies: new[] { new PackageDependency("ProjectLevel1") });

            // Act
            repository.AddPackage(solutionPackage);

            // Assert
            var packageReferences = repository.PackageReferenceFile.GetPackageReferences().ToArray();
            Assert.True(packageReferences.IsEmpty());
        }
开发者ID:riteshparekh,项目名称:NuGet,代码行数:15,代码来源:SharedPackageRepositoryTest.cs


示例19: AddPackageAddSolutionLevelPackageDependingOnAnotherSolutionLevelPackage

        public void AddPackageAddSolutionLevelPackageDependingOnAnotherSolutionLevelPackage()
        {
            // Arrange
            var fileSystem = new MockFileSystem();
            var configFileSystem = new MockFileSystem();
            var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem), fileSystem, configFileSystem);
            var solutionPackage1 = PackageUtility.CreatePackage("SolutionLevel1", tools: new[] { "Install.ps1" });
            var solutionPackage2 = PackageUtility.CreatePackage("SolutionLevel2", tools: new[] { "Install.ps1" }, dependencies: new[] { new PackageDependency("SolutionLevel1")});            
            // Act
            repository.AddPackage(solutionPackage1);
            repository.AddPackage(solutionPackage2);

            // Assert
            var packageReferences = repository.PackageReferenceFile.GetPackageReferences()
                .Select(p => p.Id).OrderBy(id => id).ToArray();
            Assert.Equal(new [] { "SolutionLevel1", "SolutionLevel2" }, packageReferences);
        }
开发者ID:riteshparekh,项目名称:NuGet,代码行数:17,代码来源:SharedPackageRepositoryTest.cs


示例20: AddPackageAddReferencesToSolutionLevelPackagesToSolutionConfigFile

        public void AddPackageAddReferencesToSolutionLevelPackagesToSolutionConfigFile()
        {
            // Arrange
            var fileSystem = new MockFileSystem();
            var configFileSystem = new MockFileSystem();
            var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem), fileSystem, configFileSystem);
            var solutionPackage = PackageUtility.CreatePackage("SolutionLevel", tools: new[] { "Install.ps1" });

            // Act
            repository.AddPackage(solutionPackage);

            // Assert
            Assert.True(configFileSystem.FileExists("packages.config"));
        }
开发者ID:riteshparekh,项目名称:NuGet,代码行数:14,代码来源:SharedPackageRepositoryTest.cs



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# SharedString类代码示例发布时间:2022-05-24
下一篇:
C# SharedObjects类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap