@@ -286,7 +286,8 @@ public override Stream InstallPackage(string packageName, string packageVersion,
286286 return results ;
287287 }
288288
289- results = InstallVersion ( packageName , packageVersion , out errRecord ) ;
289+ string packageNameForInstall = PrependMARPrefix ( packageName ) ;
290+ results = InstallVersion ( packageNameForInstall , packageVersion , out errRecord ) ;
290291 return results ;
291292 }
292293
@@ -1601,13 +1602,14 @@ private Hashtable[] FindPackagesWithVersionHelper(string packageName, VersionTyp
16011602 string registryUrl = Repository . Uri . ToString ( ) ;
16021603 string packageNameLowercase = packageName . ToLower ( ) ;
16031604
1605+ string packageNameForFind = PrependMARPrefix ( packageNameLowercase ) ;
16041606 string containerRegistryAccessToken = GetContainerRegistryAccessToken ( out errRecord ) ;
16051607 if ( errRecord != null )
16061608 {
16071609 return emptyHashResponses ;
16081610 }
16091611
1610- var foundTags = FindContainerRegistryImageTags ( packageNameLowercase , "*" , containerRegistryAccessToken , out errRecord ) ;
1612+ var foundTags = FindContainerRegistryImageTags ( packageNameForFind , "*" , containerRegistryAccessToken , out errRecord ) ;
16111613 if ( errRecord != null || foundTags == null )
16121614 {
16131615 return emptyHashResponses ;
@@ -1616,7 +1618,7 @@ private Hashtable[] FindPackagesWithVersionHelper(string packageName, VersionTyp
16161618 List < Hashtable > latestVersionResponse = new List < Hashtable > ( ) ;
16171619 List < JToken > allVersionsList = foundTags [ "tags" ] . ToList ( ) ;
16181620
1619- SortedDictionary < NuGet . Versioning . SemanticVersion , string > sortedQualifyingPkgs = GetPackagesWithRequiredVersion ( allVersionsList , versionType , versionRange , requiredVersion , packageNameLowercase , includePrerelease , out errRecord ) ;
1621+ SortedDictionary < NuGet . Versioning . SemanticVersion , string > sortedQualifyingPkgs = GetPackagesWithRequiredVersion ( allVersionsList , versionType , versionRange , requiredVersion , packageNameForFind , includePrerelease , out errRecord ) ;
16201622 if ( errRecord != null )
16211623 {
16221624 return emptyHashResponses ;
@@ -1627,7 +1629,7 @@ private Hashtable[] FindPackagesWithVersionHelper(string packageName, VersionTyp
16271629 foreach ( var pkgVersionTag in pkgsInDescendingOrder )
16281630 {
16291631 string exactTagVersion = pkgVersionTag . Value . ToString ( ) ;
1630- Hashtable metadata = GetContainerRegistryMetadata ( packageNameLowercase , exactTagVersion , containerRegistryAccessToken , out errRecord ) ;
1632+ Hashtable metadata = GetContainerRegistryMetadata ( packageNameForFind , exactTagVersion , containerRegistryAccessToken , out errRecord ) ;
16311633 if ( errRecord != null || metadata . Count == 0 )
16321634 {
16331635 return emptyHashResponses ;
@@ -1694,6 +1696,18 @@ private Hashtable[] FindPackagesWithVersionHelper(string packageName, VersionTyp
16941696 return sortedPkgs ;
16951697 }
16961698
1699+ private string PrependMARPrefix ( string packageName )
1700+ {
1701+ string prefix = string . IsNullOrEmpty ( InternalHooks . MARPrefix ) ? PSRepositoryInfo . MARPrefix : InternalHooks . MARPrefix ;
1702+
1703+ // If the repostitory is MAR and its not a wildcard search, we need to prefix the package name with MAR prefix.
1704+ string updatedPackageName = Repository . IsMARRepository ( ) && packageName . Trim ( ) != "*"
1705+ ? string . Concat ( prefix , packageName )
1706+ : packageName ;
1707+
1708+ return updatedPackageName ;
1709+ }
1710+
16971711 #endregion
16981712 }
16991713}
0 commit comments