예제 #1
0
        protected override IProjectContent LoadProjectContent(string itemInclude, string itemFileName)
        {
            if (File.Exists(itemFileName))
            {
                return(ParserService.DefaultProjectContentRegistry.GetProjectContentForReference(itemInclude, itemFileName));
            }
            MonoAssemblyName assemblyName = MonoGlobalAssemblyCache.FindAssemblyName(itemInclude);

            if (assemblyName != null && assemblyName.FileName != null)
            {
                return(CecilReader.LoadAssembly(assemblyName.FileName, this));
            }
            else
            {
                if (MonoToolLocationHelper.IsMonoInstalled)
                {
                    HostCallback.ShowAssemblyLoadError(itemFileName, itemInclude, "Could not find assembly in Mono's GAC.");
                }
                else
                {
                    HostCallback.ShowAssemblyLoadError(itemFileName, itemInclude, "Could not find assembly in Mono's GAC - Mono is not installed.");
                }
                return(null);
            }
        }
예제 #2
0
        IProjectContent LoadAssembly(Assembly assembly)
        {
            IProjectContent pc = CecilReader.LoadAssembly(assembly.Location, ParserService.DefaultProjectContentRegistry);

            Assert.IsNotNull(pc);
            return(pc);
        }
        IProjectContent LoadAssembly(Assembly assembly)
        {
            var pc = CecilReader.LoadAssembly(assembly.Location, new ProjectContentRegistry());

            Assert.IsNotNull(pc);
            pc.AddReferencedContent(mscorlib);
            return(pc);
        }
        IProjectContent LoadAssembly(Assembly assembly)
        {
            var pc = CecilReader.LoadAssembly(assembly.Location, AssemblyParserService.DefaultProjectContentRegistry);

            Assert.IsNotNull(pc);
            pc.AddReferencedContent(mscorlib);
            return(pc);
        }
        protected override IProjectContent LoadProjectContent(string itemInclude, string itemFileName)
        {
            if (File.Exists(itemFileName))
            {
                // we cannot reuse project contents from the default registry because they would
                // reference the wrong mscorlib version, causing code-completion problems
                // when a CF application references a CF library
                return(base.LoadProjectContent(itemInclude, itemFileName));
            }
            string netPath = GetInstallFolder();

            if (!string.IsNullOrEmpty(netPath) && File.Exists(Path.Combine(netPath, "mscorlib.dll")))
            {
                string shortName = itemInclude;
                int    pos       = shortName.IndexOf(',');
                if (pos > 0)
                {
                    shortName = shortName.Substring(0, pos);
                }

                if (File.Exists(Path.Combine(netPath, shortName + ".dll")))
                {
                    ReflectionProjectContent rpc = CecilReader.LoadAssembly(Path.Combine(netPath, shortName + ".dll"), this);
                    if (rpc != null)
                    {
                        redirectedAssemblyNames.Add(shortName, rpc.AssemblyFullName);
                    }
                    return(rpc);
                }
                else if (File.Exists(Path.Combine(netPath, shortName)))
                {
                    // perhaps shortName includes file extension
                    ReflectionProjectContent rpc = CecilReader.LoadAssembly(Path.Combine(netPath, shortName), this);
                    if (rpc != null)
                    {
                        redirectedAssemblyNames.Add(Path.GetFileNameWithoutExtension(shortName), rpc.AssemblyFullName);
                    }
                    return(rpc);
                }
            }
            else
            {
                string message = "Warning: .NET Compact Framework SDK is not installed." + Environment.NewLine;
                if (!TaskService.BuildMessageViewCategory.Text.Contains(message))
                {
                    TaskService.BuildMessageViewCategory.AppendText(message);
                }
            }
            return(base.LoadProjectContent(itemInclude, itemFileName));
        }
예제 #6
0
        protected override IProjectContent LoadProjectContent(string itemInclude, string itemFileName)
        {
            if (File.Exists(itemFileName))
            {
                return(base.LoadProjectContent(itemInclude, itemFileName));
            }
            string netPath = Path.Combine(FileUtility.NETFrameworkInstallRoot, DotnetVersion);

            if (File.Exists(Path.Combine(netPath, "mscorlib.dll")))
            {
                string shortName = itemInclude;
                int    pos       = shortName.IndexOf(',');
                if (pos > 0)
                {
                    shortName = shortName.Substring(0, pos);
                }

                if (File.Exists(Path.Combine(netPath, shortName + ".dll")))
                {
                    ReflectionProjectContent rpc = CecilReader.LoadAssembly(Path.Combine(netPath, shortName + ".dll"), this);
                    if (rpc != null)
                    {
                        redirectedAssemblyNames.Add(shortName, rpc.AssemblyFullName);
                    }
                    return(rpc);
                }
                else if (File.Exists(Path.Combine(netPath, shortName)))
                {
                    // perhaps shortName includes file extension
                    ReflectionProjectContent rpc = CecilReader.LoadAssembly(Path.Combine(netPath, shortName), this);
                    if (rpc != null)
                    {
                        redirectedAssemblyNames.Add(Path.GetFileNameWithoutExtension(shortName), rpc.AssemblyFullName);
                    }
                    return(rpc);
                }
            }
            else
            {
                string message = "Warning: Target .NET Framework version " + DotnetVersion + " is not installed." + Environment.NewLine;
                if (!TaskService.BuildMessageViewCategory.Text.Contains(message))
                {
                    TaskService.BuildMessageViewCategory.AppendText(message);
                }
            }
            return(base.LoadProjectContent(itemInclude, itemFileName));
        }
 public CecilLayerTests()
 {
     mscorlib = CecilReader.LoadAssembly(typeof(object).Assembly.Location, new ProjectContentRegistry());
 }
예제 #8
0
 public CecilLayerTests()
 {
     mscorlib = CecilReader.LoadAssembly(typeof(object).Assembly.Location, ParserService.DefaultProjectContentRegistry);
 }