Skip to content

Layout files creating huge cache folders, new shadow dlls every time #2383

Closed

Description

@rihadavid

Every time I open axml or xml file, it saves all of my references in project as dll files to AppDate/Local/Temp/cache/David-mono-cachepath/assembly/shadow folder.

It is saving the same dlls over and over again - and not rewriting, creating new files.

This creates about 1GB of cache files every hour, depending on what I am working on. Imagine my SSD after few days of work 🐙

The structure of the created folders is this:

shadow/d6b05dd5/d7f833e4_e356727a_00000001/Xamarin.Android.Support.v7.AppCompat.dll
shadow/d6b05dd5/d7f833e4_e356727a_00000002/Xamarin.Android.Support.v7.AppCompat.dll
shadow/d6b05dd5/d7f833e4_e356727a_00000003/Xamarin.Android.Support.v7.AppCompat.dll
shadow/d6b05dd5/d7f833e4_e356727a_00000004/Xamarin.Android.Support.v7.AppCompat.dll
shadow/bf18e0b5/5c4e92cf_e356727a_00000001/Xamarin.GooglePlayServices.Tasks.dll
shadow/bf18e0b5/5c4e92cf_e356727a_00000002/Xamarin.GooglePlayServices.Tasks.dll
shadow/bf18e0b5/5c4e92cf_e356727a_00000003/Xamarin.GooglePlayServices.Tasks.dll
shadow/bf18e0b5/5c4e92cf_e356727a_00000004/Xamarin.GooglePlayServices.Tasks.dll
shadow/3cbba188/dfedd3f2_e356727a_00000001/Plugin.Connectivity.dll
shadow/3cbba188/dfedd3f2_e356727a_00000002/Plugin.Connectivity.dll
shadow/3cbba188/dfedd3f2_e356727a_00000003/Plugin.Connectivity.dll
shadow/3cbba188/dfedd3f2_e356727a_00000004/Plugin.Connectivity.dll
etc.

Each of the folders also contains __AssemblyInfo__.ini.

I have 86 references in my project, so every time this happens, 86 new dlls are saved into those folders, creating 22MB of new useless files.

Steps to Reproduce

You can easily reproduce this by creating the basic sample offered by VS - Android App (Xamarin), Single View App and opening and closing Resources/layout/activity_main.axml a few times.

Version Information

Microsoft Visual Studio Community 2017
Version 15.8.9
VisualStudio.15.Release/15.8.9+28010.2050
Microsoft .NET Framework
Version 4.7.03056

Installed Version: Community

ASP.NET and Web Tools 2017 15.8.05085.0
ASP.NET and Web Tools 2017

ASP.NET Core Razor Language Services 15.8.31590
Provides languages services for ASP.NET Core Razor.

AWS Toolkit for Visual Studio 2017 1.14.4.1
AWS Toolkit for Visual Studio 2017.
Copyright 2011-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.

Release notes: https://aws-vs-toolkit.s3.amazonaws.com/versioninfo.html

This software includes third party software subject to the following copyrights:

  • Logging from log4net, Apache License
    [http://logging.apache.org/log4net/license.html]
  • Putty for PPK to PEM conversion, MIT license
    [http://www.chiark.greenend.org.uk/~sgtatham/putty/licence.html]
  • NGit for AWS Elastic Beanstalk incremental push
    [https://github.com/mono/ngit/blob/master/NGit.license.txt]
  • NSch dependency for NGit
    [https://github.com/mono/ngit/blob/master/NSch.license.txt]
  • Sharpen dependency for NGit
    [https://github.com/mono/ngit/blob/master/Sharpen/AssemblyInfo.cs]
  • ICSharpCode.SharpZipLib dependency for NGit
    [http://www.icsharpcode.net/opensource/sharpziplib/]
  • Mono.Posix.dll and Mono.Security.dll dependencies for NGit
    [http://mono-project.com/FAQ:_Licensing#Licensing]
  • MPFProj for Visual Studio Project Framework
    [http://mpfproj10.codeplex.com/license]
  • JSON Checker for JSON validation
    [http://www.raboof.com/projects/jsonchecker/]
  • Newtonsoft Json.NET
    [http://www.newtonsoft.com/json]
  • YamlDotNet
    [http://aaubry.net/pages/yamldotnet.html]

C# Tools 2.9.0-beta8-63208-01
C# components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used.

Common Azure Tools 1.10
Provides common services for use by Azure Mobile Services and Microsoft Azure Tools.

Extensibility Message Bus 1.1.49 (remotes/origin/d15-8@ee674f3)
Provides common messaging-based MEF services for loosely coupled Visual Studio extension components communication and integration.

Microsoft JVM Debugger 1.0
Provides support for connecting the Visual Studio debugger to JDWP compatible Java Virtual Machines

Microsoft MI-Based Debugger 1.0
Provides support for connecting Visual Studio to MI compatible debuggers

Mono Debugging for Visual Studio 4.11.11-pre (8fb558f)
Support for debugging Mono processes with Visual Studio.

NuGet Package Manager 4.6.0
NuGet Package Manager in Visual Studio. For more information about NuGet, visit http://docs.nuget.org/.

ProjectServicesPackage Extension 1.0
ProjectServicesPackage Visual Studio Extension Detailed Info

ResourcePackage Extension 1.0
ResourcePackage Visual Studio Extension Detailed Info

ResourcePackage Extension 1.0
ResourcePackage Visual Studio Extension Detailed Info

Visual Basic Tools 2.9.0-beta8-63208-01
Visual Basic components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used.

Visual F# Tools 10.2 for F# 4.5 15.8.0.0. Commit Hash: 55a3dc3231c95c77f81ee53f7d29152029da7408.
Microsoft Visual F# Tools 10.2 for F# 4.5

Visual Studio Code Debug Adapter Host Package 1.0
Interop layer for hosting Visual Studio Code debug adapters in Visual Studio

VisualStudio.Mac 1.0
Mac Extension for Visual Studio

Xamarin 4.11.0.779 (d15-8@ff915e800)
Visual Studio extension to enable development for Xamarin.iOS and Xamarin.Android.

Xamarin Designer 4.15.12 (d7ff6f39c)
Visual Studio extension to enable Xamarin Designer tools in Visual Studio.

Xamarin Templates 1.1.118 (4217ee9)
Templates for building iOS, Android, and Windows apps with Xamarin and Xamarin.Forms.

Xamarin.Android SDK 9.0.0.19 (HEAD/a8a3b0ec7)
Xamarin.Android Reference Assemblies and MSBuild support.

Xamarin.iOS and Xamarin.Mac SDK 12.1.0.15 (cbfb047)
Xamarin.iOS and Xamarin.Mac Reference Assemblies and MSBuild support.

VS bug #726022, VS bug #726023, VS bug #945609

Activity

  1. added this to the d16-0 milestone on Nov 8, 2018
  2. xamarin-release-manager commented on Nov 8, 2018

    @xamarin-release-manager
    Collaborator

    [VS sync] The field 'Milestone' contains the value '16.0' that is not in the list of supported values

  3. jonathanpeppers commented on Nov 8, 2018

    @jonathanpeppers
    Member

    I can repro this on 15.8.9, the files appear in %temp%\cache. Seems to happen when you open axml files in the designer.

    The folder seems to grow upon each new file I open, this was "Hello World" Xamarin.Forms app (I just opened the few resources that template has):

    • First axml file: 10.3MB
    • Second axml file: 20.6MB

    When I close VS, they don't go away.

    Any ideas @garuma ?

  4. added
    vs-syncFor internal use only; creates a VSTS "mirror" issue.
    on Nov 8, 2018
  5. garuma commented on Nov 9, 2018

    @garuma
    Contributor

    @rihadavid thanks for the report. We use Mono's built-in assembly shadow caching to avoid keeping file locks that would prevent the IDE from overwriting those assemblies (during build and design-times) and it's supposed to be cleaning up after itself once those assemblies are unloaded. If those files are being left behind it's possible there is a regression there, I will check that.

  6. removed this from the d16-2 milestone on Jul 11, 2019
  7. xamarin-release-manager commented on Oct 23, 2019

    @xamarin-release-manager
    Collaborator

    [sync] [VS-38] Comment by xamarinc

    Fixed in version 16.4.99.549 (master)

    Pull Request #2269 merged by: Stephen Shaw
    Author: xamarin
    Commit: 7b67320f4af8beb7bf7306d0e3fff5b86d768c82 (xamarin/designer)

  8. xamarin-release-manager commented on Oct 23, 2019

    @xamarin-release-manager
    Collaborator

    [sync] [VS-28] Comment by xamarinc

    Fixed in version 16.4.99.549 (master)

    Pull Request #2269 merged by: Stephen Shaw
    Author: xamarin
    Commit: 7b67320f4af8beb7bf7306d0e3fff5b86d768c82 (xamarin/designer)

  9. ghost locked as resolved and limited conversation to collaborators on Jun 7, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugComponent does not function as intended.vs-syncFor internal use only; creates a VSTS "mirror" issue.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions