Skip to content

Commit 047678a

Browse files
committed
Implemented isolated assembly loading.
1 parent 6bf136c commit 047678a

File tree

15 files changed

+140
-75
lines changed

15 files changed

+140
-75
lines changed

Test.sln

+11
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConsoleTest", "Tests\Consol
156156
EndProject
157157
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.TestRunner.UI.Avalonia", "Tests\Cosmos.TestRunner.UI.Avalonia\Cosmos.TestRunner.UI.Avalonia.csproj", "{2992AA07-E126-4EE0-B31C-D0B2ADE3393A}"
158158
EndProject
159+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestKernels", "Tests\TestKernels\TestKernels.csproj", "{CCFD198D-4859-462B-9EF7-B305A8B4E6FC}"
160+
EndProject
159161
Global
160162
GlobalSection(SolutionConfigurationPlatforms) = preSolution
161163
Debug|Any CPU = Debug|Any CPU
@@ -589,6 +591,14 @@ Global
589591
{2992AA07-E126-4EE0-B31C-D0B2ADE3393A}.Release|Any CPU.Build.0 = Release|Any CPU
590592
{2992AA07-E126-4EE0-B31C-D0B2ADE3393A}.Release|x86.ActiveCfg = Release|Any CPU
591593
{2992AA07-E126-4EE0-B31C-D0B2ADE3393A}.Release|x86.Build.0 = Release|Any CPU
594+
{CCFD198D-4859-462B-9EF7-B305A8B4E6FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
595+
{CCFD198D-4859-462B-9EF7-B305A8B4E6FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
596+
{CCFD198D-4859-462B-9EF7-B305A8B4E6FC}.Debug|x86.ActiveCfg = Debug|Any CPU
597+
{CCFD198D-4859-462B-9EF7-B305A8B4E6FC}.Debug|x86.Build.0 = Debug|Any CPU
598+
{CCFD198D-4859-462B-9EF7-B305A8B4E6FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
599+
{CCFD198D-4859-462B-9EF7-B305A8B4E6FC}.Release|Any CPU.Build.0 = Release|Any CPU
600+
{CCFD198D-4859-462B-9EF7-B305A8B4E6FC}.Release|x86.ActiveCfg = Release|Any CPU
601+
{CCFD198D-4859-462B-9EF7-B305A8B4E6FC}.Release|x86.Build.0 = Release|Any CPU
592602
EndGlobalSection
593603
GlobalSection(SolutionProperties) = preSolution
594604
HideSolutionNode = FALSE
@@ -663,6 +673,7 @@ Global
663673
{D4B1618A-3653-43CD-B617-20482B12712B} = {29EEC029-6A2B-478A-B6E5-D63A91388ABA}
664674
{0DF97CAC-220B-4DAD-B397-42E394255763} = {ECEA7778-E786-4317-90B9-A2D4427CB91C}
665675
{2992AA07-E126-4EE0-B31C-D0B2ADE3393A} = {0E67EFE8-5944-4F6C-8B47-C5E06D4C79F5}
676+
{CCFD198D-4859-462B-9EF7-B305A8B4E6FC} = {0E67EFE8-5944-4F6C-8B47-C5E06D4C79F5}
666677
EndGlobalSection
667678
GlobalSection(ExtensibilityGlobals) = postSolution
668679
SolutionGuid = {4418C803-277E-448F-A0A0-52788FA215AD}

Tests/Cosmos.TestRunner.Core/Cosmos.TestRunner.Core.csproj

+4-16
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
<Project Sdk="Microsoft.NET.Sdk">
2-
2+
33
<PropertyGroup>
44
<TargetFramework>netstandard2.0</TargetFramework>
5+
<IsTestRunnerProject>True</IsTestRunnerProject>
56
</PropertyGroup>
67

8+
<Import Project="..\TestKernels\TestKernels.csproj" />
9+
710
<ItemGroup>
811
<Compile Update="Engine.*.cs">
912
<DependentUpon>Engine.cs</DependentUpon>
@@ -28,21 +31,6 @@
2831
<ProjectReference Include="..\..\source\Kernel-X86\10-CPU\Cosmos.CPU_Plugs\Cosmos.CPU_Plugs.csproj" />
2932
<ProjectReference Include="..\..\source\Kernel-X86\20-Platform\Cosmos.Platform.PC\Cosmos.Platform.PC.csproj" />
3033
<ProjectReference Include="..\..\source\Kernel-X86\91-Plugs\Cosmos.Plugs.TapRoot\Cosmos.Plugs.TapRoot.csproj" />
31-
<ProjectReference Include="..\BoxingTests\BoxingTests.csproj" />
32-
<ProjectReference Include="..\ConsoleTest\ConsoleTest.csproj" />
33-
<ProjectReference Include="..\Cosmos.Compiler.Tests.Bcl\Cosmos.Compiler.Tests.Bcl.csproj" />
34-
<ProjectReference Include="..\Cosmos.Compiler.Tests.Encryption\Cosmos.Compiler.Tests.Encryption.csproj" />
35-
<ProjectReference Include="..\Cosmos.Compiler.Tests.Exceptions\Cosmos.Compiler.Tests.Exceptions.csproj" />
36-
<ProjectReference Include="..\Cosmos.Compiler.Tests.Interfaces\Cosmos.Compiler.Tests.Interfaces.csproj" />
37-
<ProjectReference Include="..\Cosmos.Compiler.Tests.MethodTests\Cosmos.Compiler.Tests.MethodTests.csproj" />
38-
<ProjectReference Include="..\Cosmos.Compiler.Tests.SingleEchoTest\Cosmos.Compiler.Tests.SingleEchoTest.csproj" />
39-
<ProjectReference Include="..\Cosmos.Compiler.Tests.TypeSystem\Cosmos.Compiler.Tests.TypeSystem.csproj" />
40-
<ProjectReference Include="..\Cosmos.Kernel.Tests.Fat2\Cosmos.Kernel.Tests.Fat2.csproj" />
41-
<ProjectReference Include="..\Cosmos.Kernel.Tests.Fat\Cosmos.Kernel.Tests.Fat.csproj" />
42-
<ProjectReference Include="..\Cosmos.Kernel.Tests.IO\Cosmos.Kernel.Tests.IO.csproj" />
43-
<ProjectReference Include="..\Cosmos.TestRunner.TestController\Cosmos.TestRunner.TestController.csproj" />
44-
<ProjectReference Include="..\GraphicTest\GraphicTest.csproj" />
45-
<ProjectReference Include="..\SimpleStructsAndArraysTest\SimpleStructsAndArraysTest.csproj" />
4634
<ProjectReference Include="$(IL2CPURepoRoot)source\Cosmos.IL2CPU\Cosmos.IL2CPU.csproj" />
4735
<ProjectReference Include="$(IL2CPURepoRoot)source\IL2CPU.API\IL2CPU.API.csproj" />
4836
<ProjectReference Include="$(XSharpRepoRoot)source\XSharp.Assembler\XSharp.Assembler.csproj" />

Tests/Cosmos.TestRunner.Core/Engine.Helpers.cs

+17-9
Original file line numberDiff line numberDiff line change
@@ -189,20 +189,26 @@ private void RunTheRingMaster(string kernelFileName)
189189

190190
private void RunIL2CPU(string kernelFileName, string outputFile)
191191
{
192-
var xReferences = new List<string>() { kernelFileName };
192+
var refsFilePath = Path.Combine(Path.GetTempPath(), Guid.NewGuid() + ".refs");
193+
var workingDirectory = Path.Combine(FindCosmosRoot(), "Tests", "TestKernels");
194+
195+
RunProcess("dotnet", workingDirectory, $"msbuild /t:WriteReferenceAssembliesToFile \"/p:ReferencesFile={refsFilePath}\" /nologo");
196+
197+
var xReferences = File.ReadAllLines(refsFilePath);
198+
var xPlugsReferences = new List<string>();
193199

194200
if (KernelPkg == "X86")
195201
{
196-
xReferences.Add(Assembly.Load(new AssemblyName("Cosmos.CPU_Plugs")).Location);
197-
xReferences.Add(Assembly.Load(new AssemblyName("Cosmos.CPU_Asm")).Location);
198-
xReferences.Add(Assembly.Load(new AssemblyName("Cosmos.Plugs.TapRoot")).Location);
202+
xPlugsReferences.Add(Assembly.Load(new AssemblyName("Cosmos.CPU_Plugs")).Location);
203+
xPlugsReferences.Add(Assembly.Load(new AssemblyName("Cosmos.CPU_Asm")).Location);
204+
xPlugsReferences.Add(Assembly.Load(new AssemblyName("Cosmos.Plugs.TapRoot")).Location);
199205
}
200206
else
201207
{
202-
xReferences.Add(Assembly.Load(new AssemblyName("Cosmos.Core_Plugs")).Location);
203-
xReferences.Add(Assembly.Load(new AssemblyName("Cosmos.Core_Asm")).Location);
204-
xReferences.Add(Assembly.Load(new AssemblyName("Cosmos.System2_Plugs")).Location);
205-
xReferences.Add(Assembly.Load(new AssemblyName("Cosmos.Debug.Kernel.Plugs.Asm")).Location);
208+
xPlugsReferences.Add(Assembly.Load(new AssemblyName("Cosmos.Core_Plugs")).Location);
209+
xPlugsReferences.Add(Assembly.Load(new AssemblyName("Cosmos.Core_Asm")).Location);
210+
xPlugsReferences.Add(Assembly.Load(new AssemblyName("Cosmos.System2_Plugs")).Location);
211+
xPlugsReferences.Add(Assembly.Load(new AssemblyName("Cosmos.Debug.Kernel.Plugs.Asm")).Location);
206212
}
207213

208214
var xArgs = new List<string>
@@ -214,13 +220,15 @@ private void RunIL2CPU(string kernelFileName, string outputFile)
214220
"DebugMode:Source",
215221
"TraceAssemblies:" + TraceAssembliesLevel,
216222
"DebugCom:1",
223+
"TargetAssembly:" + kernelFileName,
217224
"OutputFilename:" + outputFile,
218225
"EnableLogging:True",
219226
"EmitDebugSymbols:True",
220227
"IgnoreDebugStubAttribute:False"
221228
};
222229

223-
xArgs.AddRange(xReferences.Select(aReference => "References:" + aReference));
230+
xArgs.AddRange(xReferences.Select(r => "References:" + r));
231+
xArgs.AddRange(xPlugsReferences.Select(r => "PlugsReferences:" + r));
224232

225233
bool xUsingUserkit = false;
226234
string xIL2CPUPath = Path.Combine(FindCosmosRoot(), "..", "IL2CPU", "source", "IL2CPU");

Tests/TestKernels/Readme.txt

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
This project is used by the test runner to resolve the correct references to pass to IL2CPU.
2+
This project is also imported by Cosmos.TestRunner.Core, to avoid duplicating the project references to test kernel projects.

Tests/TestKernels/TestKernels.csproj

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<Project>
2+
3+
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" Condition="'$(IsTestRunnerProject)' != 'True'" />
4+
5+
<PropertyGroup Condition="'$(IsTestRunnerProject)' != 'True'">
6+
<TargetFramework>netcoreapp2.0</TargetFramework>
7+
<RuntimeIdentifier>win-x86</RuntimeIdentifier>
8+
<SelfContained>True</SelfContained>
9+
</PropertyGroup>
10+
11+
<ItemGroup>
12+
<ProjectReference Include="..\BoxingTests\BoxingTests.csproj" />
13+
<ProjectReference Include="..\ConsoleTest\ConsoleTest.csproj" />
14+
<ProjectReference Include="..\Cosmos.Compiler.Tests.Bcl\Cosmos.Compiler.Tests.Bcl.csproj" />
15+
<ProjectReference Include="..\Cosmos.Compiler.Tests.Encryption\Cosmos.Compiler.Tests.Encryption.csproj" />
16+
<ProjectReference Include="..\Cosmos.Compiler.Tests.Exceptions\Cosmos.Compiler.Tests.Exceptions.csproj" />
17+
<ProjectReference Include="..\Cosmos.Compiler.Tests.Interfaces\Cosmos.Compiler.Tests.Interfaces.csproj" />
18+
<ProjectReference Include="..\Cosmos.Compiler.Tests.MethodTests\Cosmos.Compiler.Tests.MethodTests.csproj" />
19+
<ProjectReference Include="..\Cosmos.Compiler.Tests.SingleEchoTest\Cosmos.Compiler.Tests.SingleEchoTest.csproj" />
20+
<ProjectReference Include="..\Cosmos.Compiler.Tests.TypeSystem\Cosmos.Compiler.Tests.TypeSystem.csproj" />
21+
<ProjectReference Include="..\Cosmos.Kernel.Tests.Fat2\Cosmos.Kernel.Tests.Fat2.csproj" />
22+
<ProjectReference Include="..\Cosmos.Kernel.Tests.Fat\Cosmos.Kernel.Tests.Fat.csproj" />
23+
<ProjectReference Include="..\Cosmos.Kernel.Tests.IO\Cosmos.Kernel.Tests.IO.csproj" />
24+
<ProjectReference Include="..\Cosmos.TestRunner.TestController\Cosmos.TestRunner.TestController.csproj" />
25+
<ProjectReference Include="..\GraphicTest\GraphicTest.csproj" />
26+
<ProjectReference Include="..\SimpleStructsAndArraysTest\SimpleStructsAndArraysTest.csproj" />
27+
</ItemGroup>
28+
29+
<Target Name="WriteReferenceAssembliesToFile" DependsOnTargets="RunResolvePublishAssemblies">
30+
31+
<Error Condition="'$(ReferencesFile)' == ''" Text="References file path is empty!" />
32+
33+
<ItemGroup>
34+
<_Il2cpuAssemblies Include="@(ResolvedAssembliesToPublish)" Condition="'%(AssetType)' != 'native'" />
35+
</ItemGroup>
36+
37+
<WriteLinesToFile File="$(ReferencesFile)" Lines="@(_Il2cpuAssemblies)" Overwrite="True" />
38+
39+
</Target>
40+
41+
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" Condition="'$(IsTestRunnerProject)' != 'True'" />
42+
43+
</Project>

source/Cosmos.Build.Tasks/Cosmos.Build.Tasks.csproj

+3-8
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,9 @@ $(CosmosDescription)</PackageDescription>
99
</PropertyGroup>
1010

1111
<ItemGroup>
12-
<Content Include="build\**">
13-
<Pack>True</Pack>
14-
<PackagePath>build\</PackagePath>
15-
</Content>
16-
<Content Include="tools\**">
17-
<Pack>True</Pack>
18-
<PackagePath>tools\</PackagePath>
19-
</Content>
12+
<Content Include="runtime.json" Pack="True" PackagePath="\" />
13+
<Content Include="build\**" Pack="True" PackagePath="build\" />
14+
<Content Include="tools\**" Pack="True" PackagePath="tools\" />
2015
</ItemGroup>
2116

2217
<ItemGroup>

source/Cosmos.Build.Tasks/IL2CPU.cs

+39-34
Original file line numberDiff line numberDiff line change
@@ -34,18 +34,22 @@ public class IL2CPU : ToolTask
3434

3535
public byte DebugCom { get; set; }
3636

37+
[Required]
38+
public string TargetAssembly { get; set; }
39+
3740
[Required]
3841
public ITaskItem[] References { get; set; }
3942

43+
[Required]
44+
public ITaskItem[] PlugsReferences { get; set; }
45+
4046
[Required]
4147
public string OutputFilename { get; set; }
4248

4349
public bool EnableLogging { get; set; }
4450

4551
public bool EmitDebugSymbols { get; set; }
4652

47-
public string AssemblySearchDirs { get; set; }
48-
4953
#endregion
5054

5155
protected override string ToolName => "IL2CPU.exe";
@@ -55,40 +59,41 @@ public class IL2CPU : ToolTask
5559

5660
protected override string GenerateFullPathToTool() => Path.Combine(CosmosBuildDir, @"IL2CPU\IL2CPU.exe");
5761

58-
protected override string GenerateCommandLineCommands()
62+
protected override string GenerateResponseFileCommands()
5963
{
60-
Dictionary<string, string> args = new Dictionary<string, string>
64+
var args = new Dictionary<string, string>
65+
{
66+
["KernelPkg"] = KernelPkg,
67+
["EnableDebug"] = DebugEnabled.ToString(),
68+
["EnableStackCorruptionDetection"] = StackCorruptionDetectionEnabled.ToString(),
69+
["StackCorruptionDetectionLevel"] = StackCorruptionDetectionLevel,
70+
["DebugMode"] = DebugMode,
71+
["TraceAssemblies"] = TraceAssemblies,
72+
["DebugCom"] = DebugCom.ToString(),
73+
["TargetAssembly"] = Path.GetFullPath(TargetAssembly),
74+
["OutputFilename"] = Path.GetFullPath(OutputFilename),
75+
["EnableLogging"] = EnableLogging.ToString(),
76+
["EmitDebugSymbols"] = EmitDebugSymbols.ToString(),
77+
["IgnoreDebugStubAttribute"] = IgnoreDebugStubAttribute.ToString(),
78+
}.ToList();
79+
80+
foreach (var reference in References)
6181
{
62-
{"KernelPkg", KernelPkg},
63-
{"EnableDebug", DebugEnabled.ToString()},
64-
{"EnableStackCorruptionDetection", StackCorruptionDetectionEnabled.ToString()},
65-
{"StackCorruptionDetectionLevel", StackCorruptionDetectionLevel},
66-
{"DebugMode", DebugMode},
67-
{"TraceAssemblies", TraceAssemblies},
68-
{"DebugCom", DebugCom.ToString()},
69-
{"OutputFilename", Path.GetFullPath(OutputFilename)},
70-
{"EnableLogging", EnableLogging.ToString()},
71-
{"EmitDebugSymbols", EmitDebugSymbols.ToString()},
72-
{"IgnoreDebugStubAttribute", IgnoreDebugStubAttribute.ToString()}
73-
};
74-
75-
List<string> refs =
76-
(from reference in References
77-
where reference.MetadataNames.OfType<string>().Contains("FullPath")
78-
select reference.GetMetadata("FullPath")
79-
into xFile
80-
select Convert.ToString(xFile)).ToList();
81-
82-
string Arguments = args.Aggregate("", (current, arg) => current + "\"" + arg.Key + ":" + arg.Value + "\" ");
83-
Arguments = refs.Aggregate(Arguments, (current, Ref) => current + "\"References:" + Ref + "\" ");
84-
Arguments = AssemblySearchDirs.Split(';').Aggregate(Arguments, (current, Dir) => current + "\"AssemblySearchDirs:" + Dir + "\" ");
85-
86-
// replace \" by \\"
87-
Arguments = Arguments.Replace("\\\"", "\\\\\"");
88-
89-
Log.LogMessage(MessageImportance.High, $"Invoking IL2CPU.exe {Arguments}");
90-
91-
return Arguments;
82+
args.Add(new KeyValuePair<string, string>("References", reference.ItemSpec));
83+
}
84+
85+
foreach (var plugsReference in PlugsReferences)
86+
{
87+
args.Add(new KeyValuePair<string, string>("PlugsReferences", plugsReference.ItemSpec));
88+
}
89+
90+
return String.Join(Environment.NewLine, args.Select(a => $"{a.Key}:{a.Value}"));
91+
}
92+
93+
protected override string GetResponseFileSwitch(string responseFilePath)
94+
{
95+
File.Copy(responseFilePath, @"c:\users\jpedr\Desktop\response.rsp", true);
96+
return $"ResponseFile:{responseFilePath}";
9297
}
9398
}
9499
}

source/Cosmos.Build.Tasks/build/Cosmos.Build.targets

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
<Project>
22

33
<PropertyGroup>
4-
<RuntimeIdentifier>win-x86</RuntimeIdentifier>
5-
<AppendRuntimeIdentifierToOutputPath>False</AppendRuntimeIdentifierToOutputPath>
4+
<SelfContained>True</SelfContained>
65
</PropertyGroup>
76

87
<PropertyGroup>
@@ -131,11 +130,11 @@
131130

132131
<Target Name="IL2CPU"
133132
Inputs="$(TargetPath);@(PlugsReference)"
134-
Outputs="$(Il2cpuOutput)">
133+
Outputs="$(Il2cpuOutput)"
134+
DependsOnTargets="RunResolvePublishAssemblies">
135135

136136
<ItemGroup>
137-
<AssemblySearchDir Include="$(KernelAssembliesDir)" />
138-
<AssemblySearchDir Include="%(ReferencePath.RootDir)%(ReferencePath.Directory)" />
137+
<_Il2cpuAssemblies Include="@(ResolvedAssembliesToPublish)" Condition="'%(AssetType)' != 'native'" />
139138
</ItemGroup>
140139

141140
<IL2CPU KernelPkg="$(KernelPkg)"
@@ -146,13 +145,14 @@
146145
TraceAssemblies="$(TraceAssemblies)"
147146
IgnoreDebugStubAttribute="$(IgnoreDebugStubAttribute)"
148147
DebugCom="$(DebugCom)"
149-
References="$(TargetPath);@(PlugsReference)"
150-
AssemblySearchDirs="@(AssemblySearchDir)"
148+
TargetAssembly="$(TargetPath)"
149+
References="@(_Il2cpuAssemblies)"
150+
PlugsReferences="@(PlugsReference)"
151151
OutputFilename="$(Il2cpuOutput)"
152152
EnableLogging="True"
153153
EmitDebugSymbols="$(DebugSymbols)"
154154
CosmosBuildDir="$(CosmosDir)\Build"
155-
WorkingDir="$(TargetDir)"/>
155+
WorkingDir="$(TargetDir)" />
156156

157157
</Target>
158158

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"runtimes": {
3+
"cosmos": {
4+
"#import": [ "win-x86" ]
5+
}
6+
}
7+
}

source/Cosmos.VS.ProjectSystem/ProjectTemplates/CSharp/Cosmos/Cosmos Kernel/CSharpProject.csproj

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
<PropertyGroup>
44
<TargetFramework>netcoreapp2.0</TargetFramework>
5+
<RuntimeIdentifier>cosmos</RuntimeIdentifier>
56
</PropertyGroup>
67

78
<PropertyGroup>

source/Cosmos.VS.ProjectSystem/ProjectTemplates/FSharp/Cosmos/Cosmos Kernel/FSharpProject.fsproj

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
<PropertyGroup>
44
<TargetFramework>netcoreapp2.0</TargetFramework>
5+
<RuntimeIdentifier>cosmos</RuntimeIdentifier>
56
</PropertyGroup>
67

78
<PropertyGroup>

source/Cosmos.VS.ProjectSystem/ProjectTemplates/VisualBasic/Cosmos/Cosmos Kernel/VisualBasicProject.vbproj

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
<PropertyGroup>
44
<TargetFramework>netcoreapp2.0</TargetFramework>
5+
<RuntimeIdentifier>cosmos</RuntimeIdentifier>
56
</PropertyGroup>
67

78
<PropertyGroup>

source/Templates/Cosmos.Templates.Kernel/content/Kernel-CSharp/CosmosKernel.csproj

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
<PropertyGroup>
44
<TargetFramework>netcoreapp2.0</TargetFramework>
5+
<RuntimeIdentifier>cosmos</RuntimeIdentifier>
56
</PropertyGroup>
67

78
<ItemGroup>

source/Templates/Cosmos.Templates.Kernel/content/Kernel-FSharp/CosmosKernel.fsproj

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
<PropertyGroup>
44
<TargetFramework>netcoreapp2.0</TargetFramework>
5+
<RuntimeIdentifier>cosmos</RuntimeIdentifier>
56
</PropertyGroup>
67

78
<ItemGroup>

source/Templates/Cosmos.Templates.Kernel/content/Kernel-VisualBasic/CosmosKernel.vbproj

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
<PropertyGroup>
44
<TargetFramework>netcoreapp2.0</TargetFramework>
5+
<RuntimeIdentifier>cosmos</RuntimeIdentifier>
56
</PropertyGroup>
67

78
<ItemGroup>

0 commit comments

Comments
 (0)