private FilePath GetPathToEntityFramework(DirectoryPath projectDir, ProjectAssemblyReference efReference)
        {
            var hintPath = efReference.HintPath;

            if (hintPath != null)
            {
                return(projectDir.GetRelativePath(hintPath));
            }
            return(new FilePath(@"..\packages\EntityFramework.<TODO version>\lib\net45\EntityFramework.dll"));
        }
        public ProjectAssemblyReference CreateFromProjectReferenceFilePath(string projectReferenceFilePath, string relativeIncludePath)
        {
            var projectConfig = _projectFileConfigurationFactory.Create(projectReferenceFilePath);

            var includeDefinition = _assemblyReferenceMetaDataFactory.CreateIncludeDefinition(projectConfig.PropertiesConfiguration.AssemblyName);
            var hintPath          = _assemblyReferenceMetaDataFactory.CreateHintPath(relativeIncludePath, projectConfig);

            var result = new ProjectAssemblyReference(includeDefinition, hintPath, null, false);

            return(result);
        }
示例#3
0
        private ProjectAssemblyReference CreateAssemblyReferenceFromElement(XElement element)
        {
            var includeAttribute = element.Attributes("Include").First();
            var hintPath         = _xmlParsingService.TryParsingSubElementStringValue(element, "HintPath");

            var isPrivate       = _xmlParsingService.TryParsingSubElementBoolValue(element, "Private");
            var specificVersion = _xmlParsingService.TryParsingSubElementBoolValue(element, "SpecificVersion");

            var includeDefinition = CreateIncludeDefinitionFromAttribute(includeAttribute);
            var result            = new ProjectAssemblyReference(includeDefinition, hintPath, isPrivate, specificVersion);

            return(result);
        }
示例#4
0
        public XElement CreateElement(ProjectAssemblyReference assemblyReference)
        {
            var result = new XElement(ProjectConfigConstants.AssemblyReferenceTagLocalName);

            result.Add(new XAttribute(ProjectConfigConstants.IncludeAttributeName, assemblyReference.IncludeDefinition.CreateOutput()));
            if (assemblyReference.SpecificVersion.HasValue)
            {
                result.Add(new XElement(ProjectConfigConstants.SpecificVersionTagName, assemblyReference.SpecificVersion));
            }

            result.Add(new XElement(ProjectConfigConstants.HintPathTagName, assemblyReference.HintPath));
            return(result);
        }
示例#5
0
 internal void RemoveReference(ProjectAssemblyReference reference) {
     var interp = Interpreter as IPythonInterpreterWithProjectReferences;
     if (interp != null) {
         interp.RemoveReference(reference);
     }
 }
示例#6
0
        private void AddAnalyzedAssembly(IJInterpreter2 interp)
        {
            if (interp != null) {
                var asmName = AssemblyName;
                if (asmName != null) {
                    _failedToAnalyze = false;
                    _asmName = new AssemblyName(asmName);
                    _curReference = new ProjectAssemblyReference(_asmName, ReferencedProjectOutputPath);
                    var task = interp.AddReferenceAsync(_curReference);

                    task.ContinueWith(new TaskFailureHandler(TaskScheduler.FromCurrentSynchronizationContext(), this).HandleAddRefFailure);
                } else {
                    _failedToAnalyze = true;
                }
            }
        }
示例#7
0
 private void RemoveAnalyzedAssembly(IJInterpreter2 interp)
 {
     if (interp != null) {
         if (_curReference != null) {
             interp.RemoveReference(_curReference);
             _curReference = null;
         }
     }
 }
示例#8
0
        private static ProjectReference GetAssemblyReference(string kind, string name, string assemblyName) {
            ProjectReference reference;
            switch (kind) {
                case "assembly":
                    reference = new ProjectAssemblyReference(
                        new AssemblyName(assemblyName),
                        name
                    );
                    break;
                case "extension":
                    reference = new ProjectReference(name, ProjectReferenceKind.ExtensionModule);
                    break;
                default:
                    throw new InvalidOperationException("Unsupported reference type: " + kind);
            }

            return reference;
        }