Skip to content
This repository was archived by the owner on Nov 20, 2023. It is now read-only.
This repository was archived by the owner on Nov 20, 2023. It is now read-only.

Directory not empty exception on update #771

@jongio

Description

@jongio

Describe the bug

Getting directory not empty when updating

To Reproduce

Install previous version.

Install 0.6.0
dotnet tool update -g Microsoft.Tye --version "0.6.0-*" --add-source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json

Get this

Tool 'microsoft.tye' was successfully updated from version '0.5.0-alpha.20554.2' to version '0.6.0-alpha.20559.2'.
System.IO.IOException: Directory not empty
   at System.IO.FileSystem.RemoveDirectoryInternal(DirectoryInfo directory, Boolean recursive, Boolean throwOnTopLevelDirectoryNotFound)
   at System.IO.FileSystem.RemoveDirectory(String fullPath, Boolean recursive)
   at System.IO.Directory.Delete(String path, Boolean recursive)
   at ToolPackageUninstaller.<>c__DisplayClass2_0.<Uninstall>b__1()
   at Microsoft.DotNet.Cli.TransactionalAction.EnlistmentNotification.Commit(Enlistment enlistment)
   at System.Transactions.VolatileEnlistmentCommitting.EnterState(InternalEnlistment enlistment)
   at System.Transactions.VolatileEnlistmentPrepared.InternalCommitted(InternalEnlistment enlistment)
   at System.Transactions.TransactionStateCommitted.EnterState(InternalTransaction tx)
   at System.Transactions.TransactionStateSPC.EnterState(InternalTransaction tx)
   at System.Transactions.TransactionStateVolatilePhase1.Phase1VolatilePrepareDone(InternalTransaction tx)
   at System.Transactions.Phase1VolatileEnlistment.CheckComplete()
   at System.Transactions.Phase1VolatileEnlistment.FinishEnlistment()
   at System.Transactions.VolatileEnlistmentPreparing.Prepared(InternalEnlistment enlistment)
   at System.Transactions.PreparingEnlistment.Prepared()
   at Microsoft.DotNet.Cli.TransactionalAction.EnlistmentNotification.Prepare(PreparingEnlistment enlistment)
   at System.Transactions.VolatileEnlistmentPreparing.EnterState(InternalEnlistment enlistment)
   at System.Transactions.VolatileEnlistmentActive.ChangeStatePreparing(InternalEnlistment enlistment)
   at System.Transactions.TransactionStateVolatilePhase1.EnterState(InternalTransaction tx)
   at System.Transactions.TransactionStatePhase0.EnterState(InternalTransaction tx)
   at System.Transactions.TransactionStateActive.BeginCommit(InternalTransaction tx, Boolean asyncCommit, AsyncCallback asyncCallback, Object asyncState)
   at System.Transactions.CommittableTransaction.Commit()
   at System.Transactions.TransactionScope.InternalDispose()
   at System.Transactions.TransactionScope.Dispose()
   at Microsoft.DotNet.Tools.Tool.Update.ToolUpdateGlobalOrToolPathCommand.Execute()
   at Microsoft.DotNet.Tools.Tool.Update.ToolUpdateCommand.Execute()
   at Microsoft.DotNet.Cli.DotNetTopLevelCommandBase.RunCommand(String[] args)
   at Microsoft.DotNet.Tools.Tool.ToolCommand.Run(String[] args)
   at Microsoft.DotNet.Cli.Program.ProcessArgs(String[] args, ITelemetry telemetryClient)
   at Microsoft.DotNet.Cli.Program.Main(String[] args)

Further technical details

  • Include the output of tye --version
  • If possible rerun the command with -v debug and include the output
  • The platform (Linux/macOS/Windows)

azsdke2e
azsdke2e2

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions