Пример #1
0
        public async Task <LineEvaluationResult> HandleAsync(Guid lineId, string text, IReplLogger logger)
        {
            string package    = text.Substring(CommandPrefix.Length).Trim('"');
            var    assemblies = (await nugetInstaller.Install(package, logger)).ToArray();

            if (assemblies.Any())
            {
                await scriptEvaluator.AddReferences(assemblies);

                workspaceManager.CreateOrUpdateSubmission(lineId, assemblyReferences: assemblies);
            }
            return(LineEvaluationResult.NoOutput);
        }
Пример #2
0
        public async Task <LineEvaluationResult> HandleAsync(Guid lineId, string input, IReplLogger logger)
        {
            string assemblyFile = input.Substring(CommandPrefix.Length).Trim('"');
            var    assemblies   = DotNetAssemblyLocator
                                  .GroupDirectoryContentsIntoAssemblies(ReadAssembly(assemblyFile))
                                  .Select(assembly => io.CreateMetadataReferenceWithDocumentation(assembly));

            foreach (var assembly in assemblies)
            {
                logger.LogOutput("Referencing " + assembly.Display);
                await scriptEvaluator.AddReferences(assembly);

                workspaceManager.CreateOrUpdateSubmission(lineId, assemblyReferences: assembly);
                logger.LogOutput("Assembly successfully referenced");
            }
            return(LineEvaluationResult.NoOutput);
        }
Пример #3
0
        public async Task AddReferences_WithAssembly_CanAddReference()
        {
            const string instantiationRequiringReference = @"using NodaTime;";

            // ensure the reference is not loaded
            var failure = await scriptEvaluator.EvaluateAsync(instantiationRequiringReference);

            Assert.Equal(
                "(1,7): error CS0246: The type or namespace name 'NodaTime' could not be found (are you missing a using directive or an assembly reference?)",
                failure.Exception?.Message
                );

            // system under test
            await scriptEvaluator.AddReferences(
                MetadataReference.CreateFromFile("./TestHelpers/NodaTime.dll")
                );

            var success = await scriptEvaluator.EvaluateAsync(instantiationRequiringReference);

            Assert.Null(success.Exception);
        }