@@ -58,7 +58,7 @@ public ServerPackageRepository(
5858 _runBackgroundTasks = true ;
5959 _settingsProvider = settingsProvider ?? new DefaultSettingsProvider ( ) ;
6060 _logger = logger ?? new TraceLogger ( ) ;
61- _serverPackageCache = InitializeServerPackageStore ( ) ;
61+ _serverPackageCache = InitializeServerPackageCache ( ) ;
6262 _serverPackageStore = new ServerPackageStore (
6363 _fileSystem ,
6464 new ExpandedPackageRepository ( _fileSystem , hashProvider ) ,
@@ -81,7 +81,7 @@ internal ServerPackageRepository(
8181 _runBackgroundTasks = runBackgroundTasks ;
8282 _settingsProvider = settingsProvider ?? new DefaultSettingsProvider ( ) ;
8383 _logger = logger ?? new TraceLogger ( ) ;
84- _serverPackageCache = InitializeServerPackageStore ( ) ;
84+ _serverPackageCache = InitializeServerPackageCache ( ) ;
8585 _serverPackageStore = new ServerPackageStore (
8686 _fileSystem ,
8787 innerRepository ,
@@ -105,9 +105,39 @@ internal ServerPackageRepository(
105105 private bool EnableFileSystemMonitoring =>
106106 _settingsProvider . GetBoolSetting ( "enableFileSystemMonitoring" , true ) ;
107107
108- private ServerPackageCache InitializeServerPackageStore ( )
108+ private string CacheFileName => _settingsProvider . GetStringSetting ( "cacheFileName" , null ) ;
109+
110+ private ServerPackageCache InitializeServerPackageCache ( )
109111 {
110- return new ServerPackageCache ( _fileSystem , Environment . MachineName . ToLowerInvariant ( ) + ".cache.bin" ) ;
112+ return new ServerPackageCache ( _fileSystem , ResolveCacheFileName ( ) ) ;
113+ }
114+
115+ private string ResolveCacheFileName ( )
116+ {
117+ var fileName = CacheFileName ;
118+ const string suffix = ".cache.bin" ;
119+
120+ if ( String . IsNullOrWhiteSpace ( fileName ) )
121+ {
122+ // Default file name
123+ return Environment . MachineName . ToLowerInvariant ( ) + suffix ;
124+ }
125+
126+ if ( fileName . LastIndexOfAny ( Path . GetInvalidFileNameChars ( ) ) > 0 )
127+ {
128+ var message = string . Format ( Strings . Error_InvalidCacheFileName , fileName ) ;
129+
130+ _logger . Log ( LogLevel . Error , message ) ;
131+
132+ throw new InvalidOperationException ( message ) ;
133+ }
134+
135+ if ( fileName . EndsWith ( suffix , StringComparison . OrdinalIgnoreCase ) )
136+ {
137+ return fileName ;
138+ }
139+
140+ return fileName + suffix ;
111141 }
112142
113143 /// <summary>
@@ -236,7 +266,7 @@ private void AddPackagesFromDropFolderWithoutLocking()
236266 try
237267 {
238268 // Create package
239- var package = new OptimizedZipPackage ( _fileSystem , packageFile ) ;
269+ var package = PackageFactory . Open ( _fileSystem . GetFullPath ( packageFile ) ) ;
240270
241271 if ( ! CanPackageBeAddedWithoutLocking ( package , shouldThrow : false ) )
242272 {
0 commit comments