protected virtual void CreateProjectReferences(ModuleDefinition module)
        {
            ICollection <AssemblyNameReference> dependingOnAssemblies = GetAssembliesDependingOn(module);

            this.projectFileManager.CreateReferencesProjectItem(dependingOnAssemblies.Count);

            string assemblyName = module.IsMain ? module.Assembly.Name.Name : Utilities.GetNetmoduleName(module);
            string copiedReferencesSubfolder = assemblyName + "References";
            string referencesPath            = TargetPath.Remove(TargetPath.LastIndexOf(Path.DirectorySeparatorChar)) + Path.DirectorySeparatorChar + copiedReferencesSubfolder;

            ICollection <AssemblyNameReference> filteredDependingOnAssemblies = FilterDependingOnAssemblies(dependingOnAssemblies);
            int assemblyReferenceIndex  = 0;
            SpecialTypeAssembly special = module.IsReferenceAssembly() ? SpecialTypeAssembly.Reference : SpecialTypeAssembly.None;

            foreach (AssemblyNameReference reference in filteredDependingOnAssemblies)
            {
                this.CreateProjectReferenceInternal(module, reference, ref assemblyReferenceIndex, special, referencesPath, copiedReferencesSubfolder);

                assemblyReferenceIndex++;
            }
        }