@@ -28,7 +28,9 @@ public void ItBuildsDependencyContextsFromProjectLockFiles(
28
28
CompilationOptions compilationOptions ,
29
29
string baselineFileName ,
30
30
string runtime ,
31
- ITaskItem [ ] satelliteAssemblies )
31
+ ITaskItem [ ] assemblySatelliteAssemblies ,
32
+ ITaskItem [ ] referencePaths ,
33
+ ITaskItem [ ] referenceSatellitePaths )
32
34
{
33
35
LockFile lockFile = TestLockFiles . GetLockFile ( mainProjectName ) ;
34
36
@@ -37,14 +39,20 @@ public void ItBuildsDependencyContextsFromProjectLockFiles(
37
39
mainProjectName ,
38
40
".dll" ,
39
41
mainProjectVersion ,
40
- satelliteAssemblies ?? new ITaskItem [ ] { } ) ;
42
+ assemblySatelliteAssemblies ?? new ITaskItem [ ] { } ) ;
43
+
44
+ IEnumerable < ReferenceInfo > directReferences =
45
+ ReferenceInfo . CreateDirectReferenceInfos (
46
+ referencePaths ?? new ITaskItem [ ] { } ,
47
+ referenceSatellitePaths ?? new ITaskItem [ ] { } ) ;
41
48
42
49
ProjectContext projectContext = lockFile . CreateProjectContext (
43
50
FrameworkConstants . CommonFrameworks . NetCoreApp10 ,
44
51
runtime ,
45
52
Constants . DefaultPlatformLibrary ) ;
46
53
47
54
DependencyContext dependencyContext = new DependencyContextBuilder ( mainProject , projectContext )
55
+ . WithDirectReferences ( directReferences )
48
56
. WithCompilationOptions ( compilationOptions )
49
57
. Build ( ) ;
50
58
@@ -108,14 +116,42 @@ public static IEnumerable<object[]> ProjectData
108
116
} ) ,
109
117
} ;
110
118
119
+ ITaskItem [ ] referencePaths = new ITaskItem [ ]
120
+ {
121
+ new MockTaskItem (
122
+ "/usr/Path/RandomLooseLibrary.dll" ,
123
+ new Dictionary < string , string >
124
+ {
125
+ { "CopyLocal" , "true" } ,
126
+ { "FusionName" , "RandomLooseLibrary, Version=1.2.0.4, Culture=neutral, PublicKeyToken=null" } ,
127
+ { "ReferenceSourceTarget" , "ResolveAssemblyReference" } ,
128
+ { "Version" , "" } ,
129
+ } ) ,
130
+ } ;
131
+
132
+ ITaskItem [ ] referenceSatellitePaths = new ITaskItem [ ]
133
+ {
134
+ new MockTaskItem (
135
+ @"/usr/Path/fr/RandomLooseLibrary.resources.dll" ,
136
+ new Dictionary < string , string >
137
+ {
138
+ { "CopyLocal" , "true" } ,
139
+ { "DestinationSubDirectory" , "fr/" } ,
140
+ { "OriginalItemSpec" , "/usr/Path/RandomLooseLibrary.dll" } ,
141
+ { "ResolvedFrom" , "{RawFileName}" } ,
142
+ { "Version" , "" } ,
143
+ } ) ,
144
+ } ;
145
+
111
146
return new [ ]
112
147
{
113
- new object [ ] { "dotnet.new" , "1.0.0" , null , "dotnet.new" , null , null } ,
114
- new object [ ] { "dotnet.new" , "1.0.0" , null , "dotnet.new.resources" , null , dotnetNewSatelliteAssemblies } ,
115
- new object [ ] { "simple.dependencies" , "1.0.0" , null , "simple.dependencies" , null , null } ,
116
- new object [ ] { "simple.dependencies" , "1.0.0" , compilationOptions , "simple.dependencies.compilerOptions" , null , null } ,
117
- new object [ ] { "all.asset.types" , "1.0.0" , null , "all.asset.types.portable" , null , null } ,
118
- new object [ ] { "all.asset.types" , "1.0.0" , null , "all.asset.types.osx" , "osx.10.11-x64" , null } ,
148
+ new object [ ] { "dotnet.new" , "1.0.0" , null , "dotnet.new" , null , null , null , null } ,
149
+ new object [ ] { "dotnet.new" , "1.0.0" , null , "dotnet.new.resources" , null , dotnetNewSatelliteAssemblies , null , null } ,
150
+ new object [ ] { "simple.dependencies" , "1.0.0" , null , "simple.dependencies" , null , null , null , null } ,
151
+ new object [ ] { "simple.dependencies" , "1.0.0" , compilationOptions , "simple.dependencies.compilerOptions" , null , null , null , null } ,
152
+ new object [ ] { "simple.dependencies" , "1.0.0" , compilationOptions , "simple.dependencies.directReference" , null , null , referencePaths , referenceSatellitePaths } ,
153
+ new object [ ] { "all.asset.types" , "1.0.0" , null , "all.asset.types.portable" , null , null , null , null } ,
154
+ new object [ ] { "all.asset.types" , "1.0.0" , null , "all.asset.types.osx" , "osx.10.11-x64" , null , null , null } ,
119
155
} ;
120
156
}
121
157
}
0 commit comments