microsoft / vscode-filewatcher-windows

The file watcher used for VS Code on Windows.
Other
98 stars 59 forks source link

Windows 7: New files not automatically displayed in explorer (.NET 4.5 required) #9

Closed bpasero closed 8 years ago

bpasero commented 8 years ago

From @gregvanl on April 7, 2016 17:37

Steps to Reproduce:

  1. Follow the CSS transpiling section and create a tasks.json with 'node-sass' as the command.
  2. Save tasks.json
  3. Restart VS Code
  4. Ctrl+Shift+B to Run Build Task

Rendering Complete, saving .css file... Wrote CSS to ...

No .css file shows up in the Explorer

  1. Restart VS Code in the same folder.

Now styles.css is displayed

Copied from original issue: Microsoft/vscode#5083

bpasero commented 8 years ago

From @gregvanl on April 7, 2016 17:44

Also repros on 0.10.14-insiders

bpasero commented 8 years ago

From @gregvanl on April 7, 2016 19:20

Doesn't repro on Windows 8.1 and 10

bpasero commented 8 years ago

From @gregvanl on April 7, 2016 20:1

Simpler repro: Just create a new file with notepad, add text and save. Doesn't show up in the explorer until you either restart or run refresh.

bpasero commented 8 years ago

From @gregvanl on April 8, 2016 0:7

I've reproduced this on two different Windows 7 VMs. I can grant access to anyone who wants to take a look.

bpasero commented 8 years ago

From @gregvanl on April 8, 2016 0:45

I'm using http://xlab DevDiv Private Cloud VMs for my testing. It's very easy to create Windows 7 machines for testing. I assume the Zurich team has access to this service.

bpasero commented 8 years ago

From @gregvanl on April 8, 2016 5:43

This is very consistent (100%) on the xlab VMs but I haven't been able to repro this on other Windows 7 machines.

bpasero commented 8 years ago

Can you try to run VS Code in verbose mode?

You should then get the file events logged to the dev console.

bpasero commented 8 years ago

From @gregvanl on April 8, 2016 15:34

This issue is that Electron requires .NET 4.5 since it uses System.Threading.Tasks.Task.Delay(Int32) which came with .NET 4.5. https://msdn.microsoft.com/en-us/library/hh194873(v=vs.110).aspx Windows 7 on the VMs only has .NET 4. Here's the exception stack from the debug console: [FileWatcher] process error: System.MissingMethodException: Method not found: 'System.Threading.Tasks.Task System.Threading.Tasks.Task.Delay(Int32)'. at FileWatcher.EventProcessor.ProcessEvent(FileEvent fileEvent) at VSCode.FileSystem.Program.<>cDisplayClass8.

b2() at System.Threading.ThreadHelper.ThreadStart_Context(Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart()

bpasero commented 8 years ago

From @gregvanl on April 8, 2016 15:36

Do we want to detect that .NET 4.5 is missing and alert the user? I will add this requirement to the docs in setup.md. I think this explains some of the verbatim we see where various walkthroughs like the CSS topic don't work at all for users.

bpasero commented 8 years ago

From @gregvanl on April 8, 2016 15:53

I think we should alert the user when VS Code sees a MissingMethodException. Windows 7 still has the highest market share of the Windows OSs and the experience when we eat this exception is poor since the File Watcher isn't working.

bpasero commented 8 years ago

From @gregvanl on April 8, 2016 16:42

Note: .NET 4.5 is only an optional update for Windows 7

bpasero commented 8 years ago

Now showing a message to the user.