question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Explicitly run first-time experience

See original GitHub issue

Hi,

I’m automating the creation of virtual machines that will be used as build servers.

After installing the .NET Core SDK through the Visual Studio 2017 Installer, the first-time experience does not appear to be run. Thus, on the first build that happens on that server, that build includes the first-run experience.

Since my build process attempts to build multiple projects in parallel, various instances of dotnet choke over the first-use sentinel when attempting concurrent writes:

Welcome to .NET Core!
---------------------
Learn more about .NET Core @ https://aka.ms/dotnet-docs. Use dotnet --help to see available commands or go to https://aka.ms/dotnet-cli-docs.

Telemetry
--------------
The .NET Core tools collect usage data in order to improve your experience. The data is anonymous and does not include command-line arguments. The data is collected by Microsoft and shared with the community.
You can opt out of telemetry by setting a DOTNET_CLI_TELEMETRY_OPTOUT environment variable to 1 using your favorite shell.
You can read more about .NET Core tools telemetry @ https://aka.ms/dotnet-cli-telemetry.

My.DotNet.Project.dll (net47) ExitCode = 1
System.IO.IOException: The process cannot access the file 'C:\Users\BuildServerUser\.dotnet\2.1.104.dotnetFirstUseSentinel' because it is being used by another process.
   at System.IO.FileStream.OpenHandle(FileMode mode, FileShare share, FileOptions options)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
   at System.IO.File.Create(String path)
   at Microsoft.Extensions.EnvironmentAbstractions.FileWrapper.CreateEmptyFile(String path)
   at Microsoft.DotNet.Configurer.FirstTimeUseNoticeSentinel.CreateIfNotExists()
   at Microsoft.DotNet.Configurer.DotnetFirstTimeUseConfigurer.PrintFirstTimeUseNotice()
   at Microsoft.DotNet.Configurer.DotnetFirstTimeUseConfigurer.Configure()
   at Microsoft.DotNet.Cli.Program.ConfigureDotNetForFirstTimeUse(INuGetCacheSentinel nugetCacheSentinel, IFirstTimeUseNoticeSentinel firstTimeUseNoticeSentinel, CliFallbackFolderPathCalculator cliFallbackFolderPathCalculator)
   at Microsoft.DotNet.Cli.Program.ProcessArgs(String[] args, ITelemetry telemetryClient)
   at Microsoft.DotNet.Cli.Program.Main(String[] args)

Is there a sensible way to kick off this process automatically at the time that the VM is created, rather than at the time of the first build? I’d rather do it eagerly than lazily.

Thanks.

Issue Analytics

  • State:closed
  • Created 5 years ago
  • Comments:9 (5 by maintainers)

github_iconTop GitHub Comments

1reaction
vcsjonescommented, May 31, 2018

Seems like this is a dupe of dotnet/sdk#7293.

0reactions
livarcocccommented, May 31, 2018

Agreed.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Execute the setInterval function without delay the first time
It's simplest to just call the function yourself directly the first time: foo(); setInterval(foo, delay);. However there are good reasons to ...
Read more >
NET SDK and .NET CLI telemetry
This "first run" experience is how Microsoft notifies you about data collection.
Read more >
Onboarding - Material Design
Design onboarding that connects to a first-run experience. The UI seen after onboarding should make it easy for users to act on what...
Read more >
The 10 best user onboarding examples to learn from
A great user onboarding experience shortens your new users' time to value, ... Checklists provide an explicit list of tasks for the user...
Read more >
Notification runtime permission
Android 13 (API level 33) and higher supports a runtime permission for sending non-exempt (including Foreground Services (FGS)) notifications from an app: ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found