public virtual void GenerateCSharpProject(CSharpProject project, string assemblyName, IEnumerable <string> sourceFiles, IEnumerable <string> defines, IEnumerable <CSharpProject> additionalProjectReferences)
 {
 }
 public virtual void GenerateCSharpProject(CSharpProject project, string assemblyName, IEnumerable<string> sourceFiles, IEnumerable<string> defines, IEnumerable<CSharpProject> additionalProjectReferences)
 {
 }
 public static void CreateAssemblyCSharp(CSharpProject project, string playerPackage, string assemblyName, LibraryCollection libraryCollection, WSASDK wsaSDK, CSharpProject[] additionalProjectReferences)
 {
     string relativeFinalProjectDirectory = GetRelativeFinalProjectDirectory(wsaSDK);
     List<AssemblyCSharpPlugin> plugins = new List<AssemblyCSharpPlugin>();
     bool includeUnet = false;
     foreach (Library library in libraryCollection)
     {
         if ((!library.Native || library.WinMd) && (!string.Equals(library.Name, Utility.AssemblyCSharpName, StringComparison.InvariantCultureIgnoreCase) && !string.Equals(library.Name, Utility.AssemblyCSharpFirstPassName, StringComparison.InvariantCultureIgnoreCase)))
         {
             if (string.Equals(library.Name, "UnityEngine.Networking", StringComparison.InvariantCultureIgnoreCase))
             {
                 includeUnet = true;
             }
             string reference = library.Reference;
             string str3 = @"Unprocessed\";
             if (library.WinMd && library.Native)
             {
                 str3 = "";
             }
             if (!reference.StartsWith(@"Plugins\", StringComparison.InvariantCultureIgnoreCase))
             {
                 reference = str3 + library.Reference;
             }
             reference = Utility.CombinePath(relativeFinalProjectDirectory, reference);
             AssemblyCSharpPlugin item = new AssemblyCSharpPlugin {
                 Name = library.Name,
                 HintPath = reference
             };
             plugins.Add(item);
         }
     }
     StringBuilder builder = new StringBuilder();
     string str4 = "$(UnityProjectDir)Assets";
     string[] strArray = new string[] { "Plugins", "Standard Assets", "Standard Assets (Mobile)", "Pro Standard Assets" };
     string additionalReferencePath = "";
     if (additionalProjectReferences != null)
     {
         builder.AppendFormat("    <Compile Include=\"{0}\\**\\*.cs\" Exclude=\"{0}\\**\\Editor\\**\\*.cs", str4);
         foreach (string str6 in strArray)
         {
             builder.AppendFormat(@";{0}\{1}\**\*.cs", str4, str6);
         }
         builder.AppendLine("\">");
         if (str4.StartsWith(".."))
         {
             builder.AppendFormat("      <Link>%(RecursiveDir)%(Filename)%(Extension)</Link>", new object[0]);
             builder.AppendLine();
         }
         builder.AppendLine("    </Compile>");
         additionalReferencePath = string.Format("-additionalAssemblyPath=\"{0}\"", MetroVisualStudioSolutionHelper.GetAssemblyCSharpFirstpassDllDir(wsaSDK));
     }
     else
     {
         foreach (string str7 in strArray)
         {
             builder.AppendFormat("    <Compile Include=\"{0}\\{1}\\**\\*.cs\" Exclude=\"{0}\\{1}\\**\\Editor\\**\\*.cs\">", str4, str7);
             builder.AppendLine();
             if (str4.StartsWith(".."))
             {
                 builder.AppendFormat(@"      <Link>{0}\%(RecursiveDir)%(Filename)%(Extension)</Link>", str7);
                 builder.AppendLine();
             }
             builder.AppendLine("    </Compile>");
         }
     }
     if (<>f__am$cache0 == null)
     {