Open
Description
NOTE: Your issue may already be reported! Please search on the issue tracker before creating one.
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
- Go to 'ProjectSettings',fill "Microsoft.Unity.Analyzers" and select version 1.12.0
- Select Compiler Type: BuiltIn
- Click on 'apply'
- Waiting progress endless.
- Restart UnityEditor, error report:
stdout:
stderr:
Specify which project file to use because this 'D:\GitHubs\example' contains more than one project file.
Environment
Platform: Editor(Windows)
Unity version: 2021.2.11f1
Build options:
Additional context
The BuiltIn Compiler worked perfect in Unity Editor for MacOs.
Suggest solution
Change the Setup function inside CompilerInfo to this:
public void Setup(ProcessStartInfo psi, string responseFile, RuntimePlatform platform)
{
if (platform == RuntimePlatform.WindowsEditor
&& Path.EndsWith(".exe"))
{
psi.FileName = System.IO.Path.GetFullPath(Path);
psi.Arguments = "/shared /noconfig @" + responseFile;
}
else
{
psi.FileName = System.IO.Path.GetFullPath(RuntimePath);
psi.Arguments = "\"" + Path + "\"" + " /noconfig @" + responseFile;
}
psi.CreateNoWindow = true;
psi.UseShellExecute = false;
}
I changed the Path
to "\"" + Path + "\""
to avoid problem with Windows file path since C:\Program Files\Unity\Hub\Editor\2021.2.11f1\Editor\Data\DotNetSdkRoslyn\csc.dll
has space in the path string.
I also found that CustomCompiler_2021
need to change in this function
private string GetOutDir(string dagName)
{
if (dagName.EndsWith("E")) return "Library/ScriptAssemblies";
var unityVersions = Application.unityVersion.Split('.');
if (int.Parse(unityVersions[0]) == 2021)
//return "Library/PlayerScriptAssemblies";
return "Library/ScriptAssemblies";
else
return "Library/Bee/PlayerScriptAssemblies";
}
since the Library/PlayerScriptAssemblies
was not found.