Skip to content

missing / outdated solution and assembly files -> missing assembly references #165

@grofie

Description

@grofie

Environment data

dotnet --info output:

.NET Command Line Tools (1.0.0-preview2-003131)

Product Information:
Version: 1.0.0-preview2-003131
Commit SHA-1 hash: 635cf40e58

Runtime Environment:
OS Name: Windows
OS Version: 10.0.16299
OS Platform: Windows
RID: win10-x64

VS Code version:

Version 1.23.1
Commit d0182c3417d225529c6d5ad24b7572815d0de9ac
Datum 2018-05-10T17:11:17.614Z
Shell 1.7.12
Renderer 58.0.3029.110
Node 7.9.0
Architektur x64

C# Extension version:

1.15.2

Steps to reproduce

  • deinstall VS Community if you have it on your machine
  • install Unity 2018.1.f2 without VS Community and without the VS integration.
  • install code and and the unity vs code extension.
  • there is no way to create the solution and assembly files needed by omnisharp (Assembly-CSharp.csproj, Assembly-CSharp-Editor.csproj, Assembly-CSharp-Editor-firstpass.csproj, Assembly-CSharp-firstpass.csproj, projectname.sln)
  • Assets -> Open C# Project does not do anything

Expected behavior

  • always up-to-date solution and assembly files

Actual behavior

  • no solution and assembly files at all, or only outdated ones (if they were generated before)
  • omnisharp will not find any (new) references

How I fixed it dirty

  • install VS Community with the unity intergration.
  • disable vs code and switch to VS Community in the unity preferences
  • click Assets -> Open C# Project to create the solution and assembly files (which only works with VS Community)
  • switch back to vs code
  • vs code with omnisharp is working again as expected

You have to do this all the time something changed, so this solution is really not practically!

How I fixed it less dirty

First I still need to have visual studio community with the unity plugin installed.

Second, I changed the constructor (line 284) to this:

        static VSCode()
        {
            if (Enabled)
            {
                UpdateUnityPreferences(true);
                
                // disable vs code and reset vs community as the default external editor
                EditorPrefs.SetString("kScriptsDefaultApp", EditorPrefs.GetString("VSCode_PreviousApp"));
                
                // sync will now successfully create or update the solution and project files
                SyncSolution();  
                
                UpdateLaunchFile();

                // UpdateSolution is not needed anymore because it is called over the OnGeneratedCSProjectFiles callback which gets triggered by SyncSolution()
                // UpdateSolution(); 
                
                // reenable vscode
                EditorPrefs.SetString("kScriptsDefaultApp", CodePath);
                
                // Add Update Check
                DateTime targetDate = LastUpdate.AddDays(UpdateTime);
                if (DateTime.Now >= targetDate && AutomaticUpdates)
                {
                    CheckForUpdate();
                }
            }
            
            // Event for when script is reloaded 
            System.AppDomain.CurrentDomain.DomainUnload += System_AppDomain_CurrentDomain_DomainUnload;
        }

Related Issues ??

Maybe this problem is also the reason for these releated issues:

dotnet/vscode-csharp#1867
dotnet/vscode-csharp#1676
dotnet/vscode-csharp#2209

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions