Ship shim with integration testing (#1129)

This commit is contained in:
Pavel Krymets 2018-08-01 15:40:45 -07:00 committed by GitHub
parent f4c71da996
commit 8ea2cd9081
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
28 changed files with 636 additions and 166 deletions

269
build/assets.props Normal file
View File

@ -0,0 +1,269 @@
<!-- This file is autogenerated -->
<Project>
<PropertyGroup>
<PackNativeAssets Condition="'$(OS)' == 'Windows_NT'">true</PackNativeAssets>
<NativePlatform Condition="'$(Platform)' == 'AnyCPU'">x64</NativePlatform>
<NativePlatform Condition="'$(NativePlatform)' == ''">$(Platform)</NativePlatform>
<NativeVCPlatform Condition="'$(NativePlatform)' == 'x86'">Win32</NativeVCPlatform>
<NativeVCPlatform Condition="'$(NativeVCPlatform)' == ''">$(NativePlatform)</NativeVCPlatform>
</PropertyGroup>
<ItemGroup>
<Components
VCPlatform="x64"
Platform="x64"
ProjectName="AspNetCore.vcxproj"
NativeAsset="aspnetcore"
PropetyName="AspNetCoreModuleV1Shim"
BaseOutputPath="AspNetCoreModuleV1"
ProjectDirectory="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV1\AspNetCore"
DllLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV1\AspNetCore\bin\$(Configuration)\x64\aspnetcore.dll"
Include="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV1\AspNetCore\AspNetCore.vcxproj"
PdbLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV1\AspNetCore\bin\$(Configuration)\x64\aspnetcore.pdb"
/>
<Components
VCPlatform="Win32"
Platform="x86"
ProjectName="AspNetCore.vcxproj"
NativeAsset="aspnetcore"
PropetyName="AspNetCoreModuleV1Shim"
BaseOutputPath="AspNetCoreModuleV1"
ProjectDirectory="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV1\AspNetCore"
DllLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV1\AspNetCore\bin\$(Configuration)\Win32\aspnetcore.dll"
Include="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV1\AspNetCore\AspNetCore.vcxproj"
PdbLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV1\AspNetCore\bin\$(Configuration)\Win32\aspnetcore.pdb"
/>
<Components
VCPlatform="x64"
Platform="x64"
ProjectName="AspNetCore.vcxproj"
NativeAsset="aspnetcorev2"
PropetyName="AspNetCoreModuleV2Shim"
BaseOutputPath="AspNetCoreModuleV2"
ProjectDirectory="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\AspNetCore"
DllLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\AspNetCore\bin\$(Configuration)\x64\aspnetcorev2.dll"
Include="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\AspNetCore\AspNetCore.vcxproj"
PdbLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\AspNetCore\bin\$(Configuration)\x64\aspnetcorev2.pdb"
/>
<Components
VCPlatform="Win32"
Platform="x86"
ProjectName="AspNetCore.vcxproj"
NativeAsset="aspnetcorev2"
PropetyName="AspNetCoreModuleV2Shim"
BaseOutputPath="AspNetCoreModuleV2"
ProjectDirectory="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\AspNetCore"
DllLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\AspNetCore\bin\$(Configuration)\Win32\aspnetcorev2.dll"
Include="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\AspNetCore\AspNetCore.vcxproj"
PdbLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\AspNetCore\bin\$(Configuration)\Win32\aspnetcorev2.pdb"
/>
<Components
VCPlatform="x64"
Platform="x64"
ProjectName="InProcessRequestHandler.vcxproj"
NativeAsset="aspnetcorev2_inprocess"
PropetyName="AspNetCoreModuleV2InProcessHandler"
BaseOutputPath="AspNetCoreModuleV2"
ProjectDirectory="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\InProcessRequestHandler"
DllLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\InProcessRequestHandler\bin\$(Configuration)\x64\aspnetcorev2_inprocess.dll"
Include="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\InProcessRequestHandler\InProcessRequestHandler.vcxproj"
PdbLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\InProcessRequestHandler\bin\$(Configuration)\x64\aspnetcorev2_inprocess.pdb"
/>
<Components
VCPlatform="Win32"
Platform="x86"
ProjectName="InProcessRequestHandler.vcxproj"
NativeAsset="aspnetcorev2_inprocess"
PropetyName="AspNetCoreModuleV2InProcessHandler"
BaseOutputPath="AspNetCoreModuleV2"
ProjectDirectory="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\InProcessRequestHandler"
DllLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\InProcessRequestHandler\bin\$(Configuration)\Win32\aspnetcorev2_inprocess.dll"
Include="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\InProcessRequestHandler\InProcessRequestHandler.vcxproj"
PdbLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\InProcessRequestHandler\bin\$(Configuration)\Win32\aspnetcorev2_inprocess.pdb"
/>
<Components
VCPlatform="x64"
Platform="x64"
ProjectDirectory="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\OutOfProcessRequestHandler"
ProjectName="OutOfProcessRequestHandler.vcxproj"
PropetyName="AspNetCoreModuleV2OutOfProcessHandler"
NativeAsset="aspnetcorev2_outofprocess"
BaseOutputPath="AspNetCoreModuleV2"
PackageSubPath="$(AspNetCoreModuleOutOfProcessVersion)\"
DllLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\OutOfProcessRequestHandler\bin\$(Configuration)\x64\aspnetcorev2_outofprocess.dll"
Include="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\OutOfProcessRequestHandler\OutOfProcessRequestHandler.vcxproj"
PdbLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\OutOfProcessRequestHandler\bin\$(Configuration)\x64\aspnetcorev2_outofprocess.pdb"
/>
<Components
VCPlatform="Win32"
Platform="x86"
ProjectDirectory="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\OutOfProcessRequestHandler"
ProjectName="OutOfProcessRequestHandler.vcxproj"
PropetyName="AspNetCoreModuleV2OutOfProcessHandler"
NativeAsset="aspnetcorev2_outofprocess"
BaseOutputPath="AspNetCoreModuleV2"
PackageSubPath="$(AspNetCoreModuleOutOfProcessVersion)\"
DllLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\OutOfProcessRequestHandler\bin\$(Configuration)\Win32\aspnetcorev2_outofprocess.dll"
Include="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\OutOfProcessRequestHandler\OutOfProcessRequestHandler.vcxproj"
PdbLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\OutOfProcessRequestHandler\bin\$(Configuration)\Win32\aspnetcorev2_outofprocess.pdb"
/>
<ShimComponents
VCPlatform="x64"
Platform="x64"
ProjectName="AspNetCore.vcxproj"
NativeAsset="aspnetcore"
PropetyName="AspNetCoreModuleV1Shim"
BaseOutputPath="AspNetCoreModuleV1"
ProjectDirectory="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV1\AspNetCore"
DllLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV1\AspNetCore\bin\$(Configuration)\x64\aspnetcore.dll"
Include="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV1\AspNetCore\AspNetCore.vcxproj"
PdbLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV1\AspNetCore\bin\$(Configuration)\x64\aspnetcore.pdb"
/>
<ShimComponents
VCPlatform="Win32"
Platform="x86"
ProjectName="AspNetCore.vcxproj"
NativeAsset="aspnetcore"
PropetyName="AspNetCoreModuleV1Shim"
BaseOutputPath="AspNetCoreModuleV1"
ProjectDirectory="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV1\AspNetCore"
DllLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV1\AspNetCore\bin\$(Configuration)\Win32\aspnetcore.dll"
Include="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV1\AspNetCore\AspNetCore.vcxproj"
PdbLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV1\AspNetCore\bin\$(Configuration)\Win32\aspnetcore.pdb"
/>
<ShimComponents
VCPlatform="x64"
Platform="x64"
ProjectName="AspNetCore.vcxproj"
NativeAsset="aspnetcorev2"
PropetyName="AspNetCoreModuleV2Shim"
BaseOutputPath="AspNetCoreModuleV2"
ProjectDirectory="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\AspNetCore"
DllLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\AspNetCore\bin\$(Configuration)\x64\aspnetcorev2.dll"
Include="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\AspNetCore\AspNetCore.vcxproj"
PdbLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\AspNetCore\bin\$(Configuration)\x64\aspnetcorev2.pdb"
/>
<ShimComponents
VCPlatform="Win32"
Platform="x86"
ProjectName="AspNetCore.vcxproj"
NativeAsset="aspnetcorev2"
PropetyName="AspNetCoreModuleV2Shim"
BaseOutputPath="AspNetCoreModuleV2"
ProjectDirectory="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\AspNetCore"
DllLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\AspNetCore\bin\$(Configuration)\Win32\aspnetcorev2.dll"
Include="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\AspNetCore\AspNetCore.vcxproj"
PdbLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\AspNetCore\bin\$(Configuration)\Win32\aspnetcorev2.pdb"
/>
<ShimComponents
VCPlatform="x64"
Platform="x64"
ProjectDirectory="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\OutOfProcessRequestHandler"
ProjectName="OutOfProcessRequestHandler.vcxproj"
PropetyName="AspNetCoreModuleV2OutOfProcessHandler"
NativeAsset="aspnetcorev2_outofprocess"
BaseOutputPath="AspNetCoreModuleV2"
PackageSubPath="$(AspNetCoreModuleOutOfProcessVersion)\"
DllLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\OutOfProcessRequestHandler\bin\$(Configuration)\x64\aspnetcorev2_outofprocess.dll"
Include="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\OutOfProcessRequestHandler\OutOfProcessRequestHandler.vcxproj"
PdbLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\OutOfProcessRequestHandler\bin\$(Configuration)\x64\aspnetcorev2_outofprocess.pdb"
/>
<ShimComponents
VCPlatform="Win32"
Platform="x86"
ProjectDirectory="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\OutOfProcessRequestHandler"
ProjectName="OutOfProcessRequestHandler.vcxproj"
PropetyName="AspNetCoreModuleV2OutOfProcessHandler"
NativeAsset="aspnetcorev2_outofprocess"
BaseOutputPath="AspNetCoreModuleV2"
PackageSubPath="$(AspNetCoreModuleOutOfProcessVersion)\"
DllLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\OutOfProcessRequestHandler\bin\$(Configuration)\Win32\aspnetcorev2_outofprocess.dll"
Include="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\OutOfProcessRequestHandler\OutOfProcessRequestHandler.vcxproj"
PdbLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\OutOfProcessRequestHandler\bin\$(Configuration)\Win32\aspnetcorev2_outofprocess.pdb"
/>
<InProcessComponents
VCPlatform="x64"
Platform="x64"
ProjectName="InProcessRequestHandler.vcxproj"
NativeAsset="aspnetcorev2_inprocess"
PropetyName="AspNetCoreModuleV2InProcessHandler"
BaseOutputPath="AspNetCoreModuleV2"
ProjectDirectory="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\InProcessRequestHandler"
DllLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\InProcessRequestHandler\bin\$(Configuration)\x64\aspnetcorev2_inprocess.dll"
Include="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\InProcessRequestHandler\InProcessRequestHandler.vcxproj"
PdbLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\InProcessRequestHandler\bin\$(Configuration)\x64\aspnetcorev2_inprocess.pdb"
/>
<InProcessComponents
VCPlatform="Win32"
Platform="x86"
ProjectName="InProcessRequestHandler.vcxproj"
NativeAsset="aspnetcorev2_inprocess"
PropetyName="AspNetCoreModuleV2InProcessHandler"
BaseOutputPath="AspNetCoreModuleV2"
ProjectDirectory="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\InProcessRequestHandler"
DllLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\InProcessRequestHandler\bin\$(Configuration)\Win32\aspnetcorev2_inprocess.dll"
Include="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\InProcessRequestHandler\InProcessRequestHandler.vcxproj"
PdbLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\InProcessRequestHandler\bin\$(Configuration)\Win32\aspnetcorev2_inprocess.pdb"
/>
<RunShimComponents
VCPlatform="$(NativeVCPlatform)"
Platform="$(NativePlatform)"
ProjectName="AspNetCore.vcxproj"
NativeAsset="aspnetcore"
PropetyName="AspNetCoreModuleV1Shim"
BaseOutputPath="AspNetCoreModuleV1"
ProjectDirectory="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV1\AspNetCore"
DllLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV1\AspNetCore\bin\$(Configuration)\$(NativeVCPlatform)\aspnetcore.dll"
Include="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV1\AspNetCore\AspNetCore.vcxproj"
PdbLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV1\AspNetCore\bin\$(Configuration)\$(NativeVCPlatform)\aspnetcore.pdb"
/>
<RunShimComponents
VCPlatform="$(NativeVCPlatform)"
Platform="$(NativePlatform)"
ProjectName="AspNetCore.vcxproj"
NativeAsset="aspnetcorev2"
PropetyName="AspNetCoreModuleV2Shim"
BaseOutputPath="AspNetCoreModuleV2"
ProjectDirectory="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\AspNetCore"
DllLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\AspNetCore\bin\$(Configuration)\$(NativeVCPlatform)\aspnetcorev2.dll"
Include="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\AspNetCore\AspNetCore.vcxproj"
PdbLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\AspNetCore\bin\$(Configuration)\$(NativeVCPlatform)\aspnetcorev2.pdb"
/>
<RunShimComponents
VCPlatform="$(NativeVCPlatform)"
Platform="$(NativePlatform)"
ProjectDirectory="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\OutOfProcessRequestHandler"
ProjectName="OutOfProcessRequestHandler.vcxproj"
PropetyName="AspNetCoreModuleV2OutOfProcessHandler"
NativeAsset="aspnetcorev2_outofprocess"
BaseOutputPath="AspNetCoreModuleV2"
PackageSubPath="$(AspNetCoreModuleOutOfProcessVersion)\"
DllLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\OutOfProcessRequestHandler\bin\$(Configuration)\$(NativeVCPlatform)\aspnetcorev2_outofprocess.dll"
Include="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\OutOfProcessRequestHandler\OutOfProcessRequestHandler.vcxproj"
PdbLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\OutOfProcessRequestHandler\bin\$(Configuration)\$(NativeVCPlatform)\aspnetcorev2_outofprocess.pdb"
/>
<RunInProcessComponents
VCPlatform="$(NativeVCPlatform)"
Platform="$(NativePlatform)"
ProjectName="InProcessRequestHandler.vcxproj"
NativeAsset="aspnetcorev2_inprocess"
PropetyName="AspNetCoreModuleV2InProcessHandler"
BaseOutputPath="AspNetCoreModuleV2"
ProjectDirectory="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\InProcessRequestHandler"
DllLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\InProcessRequestHandler\bin\$(Configuration)\$(NativeVCPlatform)\aspnetcorev2_inprocess.dll"
Include="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\InProcessRequestHandler\InProcessRequestHandler.vcxproj"
PdbLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\InProcessRequestHandler\bin\$(Configuration)\$(NativeVCPlatform)\aspnetcorev2_inprocess.pdb"
/>
</ItemGroup>
<PropertyGroup>
<AspNetCoreModuleV1ShimDll>$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV1\AspNetCore\bin\$(Configuration)\$(NativeVCPlatform)\aspnetcore.dll</AspNetCoreModuleV1ShimDll>
<AspNetCoreModuleV2ShimDll>$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\AspNetCore\bin\$(Configuration)\$(NativeVCPlatform)\aspnetcorev2.dll</AspNetCoreModuleV2ShimDll>
<AspNetCoreModuleV2InProcessHandlerDll>$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\InProcessRequestHandler\bin\$(Configuration)\$(NativeVCPlatform)\aspnetcorev2_inprocess.dll</AspNetCoreModuleV2InProcessHandlerDll>
<AspNetCoreModuleV2OutOfProcessHandlerDll>$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\OutOfProcessRequestHandler\bin\$(Configuration)\$(NativeVCPlatform)\aspnetcorev2_outofprocess.dll</AspNetCoreModuleV2OutOfProcessHandlerDll>
</PropertyGroup>
</Project>

View File

@ -15,8 +15,8 @@
"nativeDebugging": true,
"environmentVariables": {
"IIS_SITE_PATH": "$(MSBuildThisFileDirectory)",
"ANCM_PATH": "$(TargetDir)$(AncmPath)",
"ANCMV2_PATH": "$(TargetDir)$(AncmV2Path)",
"ANCM_PATH": "$(AncmPath)",
"ANCMV2_PATH": "$(AncmV2Path)",
"LAUNCHER_ARGS": "$(TargetPath)",
"ASPNETCORE_ENVIRONMENT": "Development",
"LAUNCHER_PATH": "$(DotNetPath)",
@ -29,8 +29,8 @@
"commandLineArgs": "$(IISArguments)",
"environmentVariables": {
"IIS_SITE_PATH": "$(MSBuildThisFileDirectory)",
"ANCM_PATH": "$(TargetDir)$(AncmPath)",
"ANCMV2_PATH": "$(TargetDir)$(AncmV2Path)",
"ANCM_PATH": "$(AncmPath)",
"ANCMV2_PATH": "$(AncmV2Path)",
"LAUNCHER_ARGS": "$(TargetPath)",
"ASPNETCORE_ENVIRONMENT": "Development",
"LAUNCHER_PATH": "$(DotNetPath)",

View File

@ -1,7 +1,7 @@
<Project>
<PropertyGroup>
<PrepareDependsOn>InitializeComponents;$(PrepareDependsOn)</PrepareDependsOn>
<PrepareDependsOn>$(PrepareDependsOn)</PrepareDependsOn>
<GetArtifactInfoDependsOn>$(GetArtifactInfoDependsOn);GetNativeArtifactsInfo</GetArtifactInfoDependsOn>
<CompileDependsOn Condition="'$(OS)'=='Windows_NT'">BuildNativeAssets;$(CompileDependsOn)</CompileDependsOn>
<PackageDependsOn Condition="'$(OS)'=='Windows_NT'">$(PackageDependsOn);PackageNativeProjects</PackageDependsOn>
@ -14,36 +14,8 @@
<ItemGroup>
<Platforms Include="x86" VCPlatform="Win32" />
<Platforms Include="x64" VCPlatform="x64" />
<NativeProjects
Include="$(SourceBase)AspNetCoreModuleV1\AspNetCore\AspNetCore.vcxproj"
NativeAsset="aspnetcore"
BaseOutputPath="AspNetCoreModuleV1" />
<NativeProjects
Include="$(SourceBase)AspNetCoreModuleV2\AspNetCore\AspNetCore.vcxproj"
NativeAsset="aspnetcorev2"
BaseOutputPath="AspNetCoreModuleV2" />
<NativeProjects
Include="$(SourceBase)AspNetCoreModuleV2\InProcessRequestHandler\InProcessRequestHandler.vcxproj"
NativeAsset="aspnetcorev2_inprocess"
BaseOutputPath="AspNetCoreModuleV2" />
<NativeProjects
Include="$(SourceBase)AspNetCoreModuleV2\OutOfProcessRequestHandler\OutOfProcessRequestHandler.vcxproj"
NativeAsset="aspnetcorev2_outofprocess"
BaseOutputPath="AspNetCoreModuleV2" />
</ItemGroup>
<Target Name="InitializeComponents">
<ItemGroup>
<Components
Include="@(NativeProjects)"
Platform="%(Platforms.Identity)"
VCPlatform="%(Platforms.VCPlatform)" />
</ItemGroup>
</Target>
</ItemGroup>
<Import Project="assets.props" />
<Target Name="BuildNativeAssets" DependsOnTargets="Prepare;GetToolsets" >
<PropertyGroup>
@ -62,7 +34,7 @@
Condition="'$(VisualStudioMSBuildx86Path)' != ''" />
</Target>
<Target Name="GetNativeArtifactsInfo" DependsOnTargets="InitializeComponents">
<Target Name="GetNativeArtifactsInfo">
<ItemGroup Condition=" '$(OS)' == 'Windows_NT' ">
<ArtifactInfo Include="$(BuildDir)Microsoft.AspNetCore.AspNetCoreModule.$(PackageVersion).nupkg">
<ArtifactType>NuGetPackage</ArtifactType>
@ -116,8 +88,8 @@
BasePath="$(RepositoryRoot)" />
<ItemGroup>
<AncmFiles Include="%(Components.RootDir)%(Components.Directory)$(NativeOutput)%(Components.VCPlatform)\%(Components.NativeAsset).dll" Link="%(Components.BaseOutputPath)\%(Components.Platform)\%(Components.NativeAsset).dll" />
<AncmFiles Include="%(Components.RootDir)%(Components.Directory)$(NativeOutput)%(Components.VCPlatform)\%(Components.NativeAsset).pdb" Link="%(Components.BaseOutputPath)\%(Components.Platform)\%(Components.NativeAsset).pdb" />
<AncmFiles Include="%(Components.DllLocation)" Link="%(Components.BaseOutputPath)\%(Components.Platform)\%(Components.NativeAsset).dll" />
<AncmFiles Include="%(Components.PdbLocation)" Link="%(Components.BaseOutputPath)\%(Components.Platform)\%(Components.NativeAsset).pdb" />
<!-- Schema-->
<AncmFiles Include="$(SourceBase)AspNetCoreModuleV1\AspNetCore\aspnetcore_schema.xml" Link="AspNetCoreModuleV1\aspnetcore_schema.xml" />

View File

@ -5,11 +5,11 @@
<Platforms>x64;x86</Platforms>
<IISExpressAppHostConfig>$(MSBuildThisFileDirectory)applicationhost.config</IISExpressAppHostConfig>
<IISAppHostConfig>$(MSBuildThisFileDirectory)applicationhost.iis.config</IISAppHostConfig>
<NativePlatform Condition="'$(Platform)' == 'AnyCPU'">x64</NativePlatform>
<NativePlatform Condition="'$(NativePlatform)' == ''">$(Platform)</NativePlatform>
<PreserveCompilationContext>false</PreserveCompilationContext>
</PropertyGroup>
<Import Project="assets.props" />
<PropertyGroup Condition="'$(NativePlatform)' == 'x86'">
<IISExpressPath>$(MSBuildProgramFiles32)\IIS Express\iisexpress.exe</IISExpressPath>
<IISPath>$(SystemRoot)\SysWOW64\inetsrv\w3wp.exe</IISPath>
@ -22,30 +22,21 @@
<NativeFolder>x64</NativeFolder>
</PropertyGroup>
<PropertyGroup>
<!-- For standalone publish, all dlls are flattened to the same folder.
Set the base path to the request handler
<!-- For standalone publish, all dlls are flattened to the same folder.
Set the base path to the request handler
-->
<BasePathForRequestHandler Condition="'$(RuntimeIdentifier)' == ''">$(NativePlatform)\</BasePathForRequestHandler>
</PropertyGroup>
<ItemGroup Condition="'$(OS)' == 'Windows_NT'">
<None Include="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\OutOfProcessRequestHandler\bin\$(Configuration)\$(NativeFolder)\aspnetcorev2_outofprocess.dll" CopyToOutputDirectory="PreserveNewest" Visible="true" Link="$(BasePathForRequestHandler)\$(AspNetCoreModuleOutOfProcessVersion)\%(FileName)%(Extension)" />
<None Include="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\OutOfProcessRequestHandler\bin\$(Configuration)\$(NativeFolder)\aspnetcorev2_outofprocess.pdb" CopyToOutputDirectory="PreserveNewest" Visible="true" Link="$(BasePathForRequestHandler)\$(AspNetCoreModuleOutOfProcessVersion)\%(FileName)%(Extension)" />
<None Include="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\InProcessRequestHandler\bin\$(Configuration)\$(NativeFolder)\aspnetcorev2_inprocess.dll" CopyToOutputDirectory="PreserveNewest" Visible="true" Link="$(BasePathForRequestHandler)%(FileName)%(Extension)" />
<None Include="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\InProcessRequestHandler\bin\$(Configuration)\$(NativeFolder)\aspnetcorev2_inprocess.pdb" CopyToOutputDirectory="PreserveNewest" Visible="true" Link="$(BasePathForRequestHandler)%(FileName)%(Extension)" />
<None Include="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\AspNetCore\bin\$(Configuration)\$(NativeFolder)\aspnetcorev2.dll" CopyToOutputDirectory="PreserveNewest" Visible="true" Link="$(BasePathForRequestHandler)%(FileName)%(Extension)" />
<None Include="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\AspNetCore\bin\$(Configuration)\$(NativeFolder)\aspnetcorev2.pdb" CopyToOutputDirectory="PreserveNewest" Visible="true" Link="$(BasePathForRequestHandler)%(FileName)%(Extension)" />
<None Include="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV1\AspNetCore\bin\$(Configuration)\$(NativeFolder)\aspnetcore.dll" CopyToOutputDirectory="PreserveNewest" Visible="true" Link="$(BasePathForRequestHandler)%(FileName)%(Extension)" />
<None Include="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV1\AspNetCore\bin\$(Configuration)\$(NativeFolder)\aspnetcore.pdb" CopyToOutputDirectory="PreserveNewest" Visible="true" Link="$(BasePathForRequestHandler)%(FileName)%(Extension)" />
</ItemGroup>
<PropertyGroup>
<IISExpressArguments>/config:"$(IISExpressAppHostConfig)" /systray:false</IISExpressArguments>
<IISArguments>-h "$(IISAppHostConfig)"</IISArguments>
<AncmPath>$(NativePlatform)\aspnetcore.dll</AncmPath>
<AncmV2Path>$(NativePlatform)\aspnetcorev2.dll</AncmV2Path>
<AncmPath>$(AspNetCoreModuleV1ShimDll)</AncmPath>
<AncmV2Path>$(AspNetCoreModuleV2ShimDll)</AncmV2Path>
<AncmInProcessRHPath>$(NativePlatform)\aspnetcorev2_inprocess.dll</AncmInProcessRHPath>
<DotNetPath>$(userprofile)\.dotnet\$(NativePlatform)\dotnet.exe</DotNetPath>
</PropertyGroup>
@ -62,8 +53,7 @@
</ProjectReference>
</ItemGroup>
<Target Name="PrepareInjectionApp">
<Target Name="PrepareInjectionApp" Condition="'$(InProcessTestSite)' == 'true'">
<PropertyGroup>
<InjectDepsAssembly>$(MSBuildThisFileDirectory)..\test\TestTasks\bin\$(Configuration)\$(TargetFramework)\TestTasks</InjectDepsAssembly>
<InjectDepsApp Condition="'$(TargetFramework)' == 'net461'">$(InjectDepsAssembly)</InjectDepsApp>
@ -82,11 +72,11 @@
</PropertyGroup>
</Target>
<Target Name="InjectRequestHandler" AfterTargets="GenerateBuildDependencyFile" DependsOnTargets="PrepareInjectionApp">
<Target Name="InjectRequestHandler" AfterTargets="GenerateBuildDependencyFile" DependsOnTargets="PrepareInjectionApp" Condition="'$(InProcessTestSite)' == 'true'">
<Exec Command="$(InjectDepsApp) $(InjectDepsArguments) &quot;$(ProjectDepsFilePath)&quot;" />
</Target>
<Target Name="InjectRequestHandlerOnPublish" AfterTargets="GeneratePublishDependencyFile" DependsOnTargets="PrepareInjectionApp">
<Target Name="InjectRequestHandlerOnPublish" AfterTargets="GeneratePublishDependencyFile" DependsOnTargets="PrepareInjectionApp" Condition="'$(InProcessTestSite)' == 'true'">
<Exec Command="$(InjectDepsApp) $(InjectDepsArguments) &quot;$(PublishDepsFilePath)&quot;" />
</Target>

View File

@ -15,8 +15,8 @@
"nativeDebugging": true,
"environmentVariables": {
"IIS_SITE_PATH": "$(MSBuildThisFileDirectory)",
"ANCM_PATH": "$(TargetDir)$(AncmPath)",
"ANCMV2_PATH": "$(TargetDir)$(AncmV2Path)",
"ANCM_PATH": "$(AncmPath)",
"ANCMV2_PATH": "$(AncmV2Path)",
"LAUNCHER_ARGS": "$(TargetPath)",
"ASPNETCORE_ENVIRONMENT": "Development",
"LAUNCHER_PATH": "$(DotNetPath)",
@ -29,8 +29,8 @@
"commandLineArgs": "$(IISArguments)",
"environmentVariables": {
"IIS_SITE_PATH": "$(MSBuildThisFileDirectory)",
"ANCM_PATH": "$(TargetDir)$(AncmPath)",
"ANCMV2_PATH": "$(TargetDir)$(AncmV2Path)",
"ANCM_PATH": "$(AncmPath)",
"ANCMV2_PATH": "$(AncmV2Path)",
"LAUNCHER_ARGS": "$(TargetPath)",
"ASPNETCORE_ENVIRONMENT": "Development",
"LAUNCHER_PATH": "$(DotNetPath)",

View File

@ -12,6 +12,8 @@
<NativeAssetsTargetFramework>netcoreapp2.2</NativeAssetsTargetFramework>
</PropertyGroup>
<Import Project="..\..\build\assets.props" />
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.HttpSys.Sources" PrivateAssets="All" Version="$(MicrosoftAspNetCoreHttpSysSourcesPackageVersion)" />
<PackageReference Include="Microsoft.Extensions.Buffers.MemoryPool.Sources" Version="$(MicrosoftExtensionsBuffersMemoryPoolSourcesPackageVersion)" PrivateAssets="All" />
@ -23,12 +25,40 @@
<PackageReference Include="Microsoft.AspNetCore.Hosting.Abstractions" Version="$(MicrosoftAspNetCoreHostingAbstractionsPackageVersion)" />
</ItemGroup>
<ItemGroup Condition="$(PackNativeAssets) == 'true'">
<SignedPackageFile Include="aspnetcorev2_inprocess_x86" PackagePath="runtimes/win-x86/nativeassets/$(NativeAssetsTargetFramework)/aspnetcorev2_inprocess.dll" Certificate="Microsoft" />
<SignedPackageFile Include="aspnetcorev2_inprocess_x64" PackagePath="runtimes/win-x64/nativeassets/$(NativeAssetsTargetFramework)/aspnetcorev2_inprocess.dll" Certificate="Microsoft" />
<ItemGroup>
<Content Include="$(PackageId).targets" PackagePath="build/$(TargetFramework)/" />
<Content Include="..\AspNetCoreModuleV2\InProcessRequestHandler\bin\$(Configuration)\Win32\aspnetcorev2_inprocess.dll" PackagePath="runtimes/win-x86/nativeassets/$(NativeAssetsTargetFramework)/aspnetcorev2_inprocess.dll" />
<Content Include="..\AspNetCoreModuleV2\InProcessRequestHandler\bin\$(Configuration)\x64\aspnetcorev2_inprocess.dll" PackagePath="runtimes/win-x64/nativeassets/$(NativeAssetsTargetFramework)/aspnetcorev2_inprocess.dll" />
</ItemGroup>
<Target Name="AddPackNativeComponents" BeforeTargets="_GetPackageFiles;GetSignedPackageFiles" Condition="$(PackNativeAssets) == 'true'">
<ItemGroup>
<None Include="%(InProcessComponents.DllLocation)"
Pack="true"
PackagePath="runtimes/win-%(InProcessComponents.Platform)/nativeassets/$(NativeAssetsTargetFramework)" />
<None Include="%(InProcessComponents.PdbLocation)"
Pack="true"
PackagePath="runtimes/win-%(InProcessComponents.Platform)/nativeassets/$(NativeAssetsTargetFramework)" />
<SignedPackageFile Include="%(InProcessComponents.NativeAsset)_%(InProcessComponents.Platform)"
PackagePath="runtimes/win-%(InProcessComponents.Platform)/nativeassets/$(NativeAssetsTargetFramework)/%(InProcessComponents.NativeAsset).dll"
Certificate="Microsoft" />
</ItemGroup>
</Target>
<Target Name="AddRunNativeComponents" BeforeTargets="AssignTargetPaths" Condition="$(PackNativeAssets) == 'true'">
<ItemGroup>
<None Include="%(RunInProcessComponents.DllLocation)"
CopyToOutputDirectory="PreserveNewest"
Link="%(RunInProcessComponents.Platform)\%(RunInProcessComponents.NativeAsset).dll"/>
<None Include="%(RunInProcessComponents.PdbLocation)"
CopyToOutputDirectory="PreserveNewest"
Link="%(RunInProcessComponents.Platform)\%(RunInProcessComponents.NativeAsset).pdb"/>
<!-- Copy to platform specific and app local directory for standalone publish -->
<None Include="%(RunInProcessComponents.DllLocation)"
CopyToOutputDirectory="PreserveNewest"
Link="%(RunInProcessComponents.NativeAsset).dll"/>
<None Include="%(RunInProcessComponents.PdbLocation)"
CopyToOutputDirectory="PreserveNewest"
Link="%(RunInProcessComponents.NativeAsset).pdb"/>
</ItemGroup>
</Target>
</Project>

View File

@ -5,6 +5,7 @@ using System;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Threading.Tasks;
using System.Xml.Linq;
@ -71,7 +72,7 @@ namespace Microsoft.AspNetCore.Server.IntegrationTesting
ConfigureSite(contentRoot, port);
ConfigureAppHostConfig(contentRoot);
ConfigureAppHostConfig();
_serverManager.CommitChanges();
@ -280,11 +281,11 @@ namespace Microsoft.AspNetCore.Server.IntegrationTesting
return site;
}
private Configuration ConfigureAppHostConfig(string dllRoot)
private Configuration ConfigureAppHostConfig()
{
var config = _serverManager.GetApplicationHostConfiguration();
SetGlobalModuleSection(config, dllRoot);
SetGlobalModuleSection(config);
SetModulesSection(config);
@ -305,9 +306,9 @@ namespace Microsoft.AspNetCore.Server.IntegrationTesting
appPool.Stop();
}
private void SetGlobalModuleSection(Configuration config, string dllRoot)
private void SetGlobalModuleSection(Configuration config)
{
var ancmFile = GetAncmLocation(dllRoot);
var ancmFile = GetAncmLocation();
var globalModulesSection = config.GetSection("system.webServer/globalModules");
var globalConfigElement = globalModulesSection
@ -355,8 +356,9 @@ namespace Microsoft.AspNetCore.Server.IntegrationTesting
}
}
private string GetAncmLocation(string dllRoot)
private string GetAncmLocation()
{
var dllRoot = AppContext.BaseDirectory;
var arch = _deploymentParameters.RuntimeArchitecture == RuntimeArchitecture.x64 ? $@"x64\{_ancmDllName}" : $@"x86\{_ancmDllName}";
var ancmFile = Path.Combine(dllRoot, arch);
if (!File.Exists(Environment.ExpandEnvironmentVariables(ancmFile)))

View File

@ -77,7 +77,7 @@ namespace Microsoft.AspNetCore.Server.IntegrationTesting.IIS
DefaultWebConfigActions.Add(WebConfigHelpers.AddOrModifyHandlerSection(
key: "modules",
value: DeploymentParameters.AncmVersion.ToString()));
RunWebConfigActions();
RunWebConfigActions(contentRoot);
}
var uri = TestUriHelper.BuildTestUri(ServerType.IIS, DeploymentParameters.ApplicationBaseUriHint);

View File

@ -16,7 +16,7 @@ namespace Microsoft.AspNetCore.Server.IntegrationTesting.IIS
{
public IISDeploymentParameters IISDeploymentParameters { get; }
protected List<Action<XElement>> DefaultWebConfigActions { get; } = new List<Action<XElement>>();
protected List<Action<XElement, string>> DefaultWebConfigActions { get; } = new List<Action<XElement, string>>();
public IISDeployerBase(IISDeploymentParameters deploymentParameters, ILoggerFactory loggerFactory)
: base(deploymentParameters, loggerFactory)
@ -24,7 +24,7 @@ namespace Microsoft.AspNetCore.Server.IntegrationTesting.IIS
IISDeploymentParameters = deploymentParameters;
}
public void RunWebConfigActions()
public void RunWebConfigActions(string contentRoot)
{
if (IISDeploymentParameters == null)
{
@ -42,19 +42,19 @@ namespace Microsoft.AspNetCore.Server.IntegrationTesting.IIS
foreach (var action in DefaultWebConfigActions)
{
action.Invoke(xElement);
action.Invoke(xElement, contentRoot);
}
foreach (var action in IISDeploymentParameters.WebConfigActionList)
{
action.Invoke(xElement);
action.Invoke(xElement, contentRoot);
}
webconfig.Save(path);
}
public string RunServerConfigActions(string serverConfigString)
public string RunServerConfigActions(string serverConfigString, string contentRoot)
{
if (IISDeploymentParameters == null)
{
@ -66,7 +66,7 @@ namespace Microsoft.AspNetCore.Server.IntegrationTesting.IIS
foreach (var action in IISDeploymentParameters.ServerConfigActionList)
{
action.Invoke(xElement);
action.Invoke(xElement, contentRoot);
}
return xElement.ToString();
}

View File

@ -16,13 +16,18 @@ namespace Microsoft.AspNetCore.Server.IntegrationTesting.IIS
}
public static void AddServerConfigAction(this IISDeploymentParameters parameters, Action<XElement> action)
{
parameters.ServerConfigActionList.Add((config, _) => action(config));
}
public static void AddServerConfigAction(this IISDeploymentParameters parameters, Action<XElement, string> action)
{
parameters.ServerConfigActionList.Add(action);
}
public static void AddHttpsToServerConfig(this IISDeploymentParameters parameters)
{
parameters.ServerConfigActionList.Add(
parameters.AddServerConfigAction(
element =>
{
element.Descendants("binding")
@ -37,7 +42,7 @@ namespace Microsoft.AspNetCore.Server.IntegrationTesting.IIS
public static void AddWindowsAuthToServerConfig(this IISDeploymentParameters parameters)
{
parameters.ServerConfigActionList.Add(
parameters.AddServerConfigAction(
element =>
{
element.Descendants("windowsAuthentication")

View File

@ -48,14 +48,14 @@ namespace Microsoft.AspNetCore.Server.IntegrationTesting.IIS
}
}
private IList<Action<XElement>> CreateDefaultWebConfigActionList()
private IList<Action<XElement, string>> CreateDefaultWebConfigActionList()
{
return new List<Action<XElement>>() { AddWebConfigEnvironmentVariables(), AddHandlerSettings() };
return new List<Action<XElement, string>>() { AddWebConfigEnvironmentVariables(), AddHandlerSettings() };
}
public IList<Action<XElement>> WebConfigActionList { get; }
public IList<Action<XElement, string>> WebConfigActionList { get; }
public IList<Action<XElement>> ServerConfigActionList { get; } = new List<Action<XElement>>();
public IList<Action<XElement, string>> ServerConfigActionList { get; } = new List<Action<XElement, string>>();
public IDictionary<string, string> WebConfigBasedEnvironmentVariables { get; set; } = new Dictionary<string, string>();
@ -63,9 +63,9 @@ namespace Microsoft.AspNetCore.Server.IntegrationTesting.IIS
public bool GracefulShutdown { get; set; }
private Action<XElement> AddWebConfigEnvironmentVariables()
private Action<XElement, string> AddWebConfigEnvironmentVariables()
{
return xElement =>
return (xElement, _) =>
{
if (WebConfigBasedEnvironmentVariables.Count == 0)
{
@ -86,9 +86,9 @@ namespace Microsoft.AspNetCore.Server.IntegrationTesting.IIS
};
}
private Action<XElement> AddHandlerSettings()
private Action<XElement, string> AddHandlerSettings()
{
return xElement =>
return (xElement, _) =>
{
if (HandlerSettings.Count == 0)
{

View File

@ -6,6 +6,7 @@ using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Text.RegularExpressions;
using System.Threading;
@ -57,7 +58,6 @@ namespace Microsoft.AspNetCore.Server.IntegrationTesting.IIS
{
DotnetPublish();
contentRoot = DeploymentParameters.PublishedApplicationRootPath;
dllRoot = contentRoot;
}
else
{
@ -93,7 +93,7 @@ namespace Microsoft.AspNetCore.Server.IntegrationTesting.IIS
var testUri = TestUriHelper.BuildTestUri(ServerType.IISExpress, DeploymentParameters.ApplicationBaseUriHint);
// Launch the host process.
var (actualUri, hostExitToken) = await StartIISExpressAsync(testUri, contentRoot, dllRoot);
var (actualUri, hostExitToken) = await StartIISExpressAsync(testUri, contentRoot);
Logger.LogInformation("Application ready at URL: {appUrl}", actualUri);
@ -145,7 +145,7 @@ namespace Microsoft.AspNetCore.Server.IntegrationTesting.IIS
return dllRoot;
}
private async Task<(Uri url, CancellationToken hostExitToken)> StartIISExpressAsync(Uri uri, string contentRoot, string dllRoot)
private async Task<(Uri url, CancellationToken hostExitToken)> StartIISExpressAsync(Uri uri, string contentRoot)
{
using (Logger.BeginScope("StartIISExpress"))
{
@ -156,7 +156,7 @@ namespace Microsoft.AspNetCore.Server.IntegrationTesting.IIS
}
Logger.LogInformation("Attempting to start IIS Express on port: {port}", port);
PrepareConfig(contentRoot, dllRoot, port);
PrepareConfig(contentRoot, port);
var parameters = string.IsNullOrEmpty(DeploymentParameters.ServerConfigLocation) ?
string.Format("/port:{0} /path:\"{1}\" /trace:error /systray:false", uri.Port, contentRoot) :
@ -257,7 +257,7 @@ namespace Microsoft.AspNetCore.Server.IntegrationTesting.IIS
}
}
private void PrepareConfig(string contentRoot, string dllRoot, int port)
private void PrepareConfig(string contentRoot, int port)
{
// Config is required. If not present then fall back to one we carry with us.
if (string.IsNullOrEmpty(DeploymentParameters.ServerConfigTemplateContent))
@ -273,8 +273,8 @@ namespace Microsoft.AspNetCore.Server.IntegrationTesting.IIS
// Pass on the applicationhost.config to iis express. With this don't need to pass in the /path /port switches as they are in the applicationHost.config
// We take a copy of the original specified applicationHost.Config to prevent modifying the one in the repo.
serverConfig = ModifyANCMPathInConfig(replaceFlag: "[ANCMPath]", dllName: "aspnetcore.dll", serverConfig, dllRoot);
serverConfig = ModifyANCMPathInConfig(replaceFlag: "[ANCMV2Path]", dllName: "aspnetcorev2.dll", serverConfig, dllRoot);
serverConfig = ModifyANCMPathInConfig(replaceFlag: "[ANCMPath]", dllName: "aspnetcore.dll", serverConfig);
serverConfig = ModifyANCMPathInConfig(replaceFlag: "[ANCMV2Path]", dllName: "aspnetcorev2.dll", serverConfig);
serverConfig = ReplacePlaceholder(serverConfig, "[PORT]", port.ToString(CultureInfo.InvariantCulture));
serverConfig = ReplacePlaceholder(serverConfig, "[ApplicationPhysicalPath]", contentRoot);
@ -291,7 +291,7 @@ namespace Microsoft.AspNetCore.Server.IntegrationTesting.IIS
value: DeploymentParameters.AncmVersion.ToString()));
ModifyDotNetExePathInWebConfig();
serverConfig = RemoveRedundantElements(serverConfig);
RunWebConfigActions();
RunWebConfigActions(contentRoot);
}
else
{
@ -299,7 +299,7 @@ namespace Microsoft.AspNetCore.Server.IntegrationTesting.IIS
serverConfig = ReplacePlaceholder(serverConfig, "[HostingModel]", DeploymentParameters.HostingModel.ToString());
serverConfig = ReplacePlaceholder(serverConfig, "[AspNetCoreModule]", DeploymentParameters.AncmVersion.ToString());
}
serverConfig = RunServerConfigActions(serverConfig);
serverConfig = RunServerConfigActions(serverConfig, contentRoot);
DeploymentParameters.ServerConfigLocation = Path.GetTempFileName();
Logger.LogDebug("Saving Config to {configPath}", DeploymentParameters.ServerConfigLocation);
@ -317,8 +317,9 @@ namespace Microsoft.AspNetCore.Server.IntegrationTesting.IIS
return content;
}
private string ModifyANCMPathInConfig(string replaceFlag, string dllName, string serverConfig, string dllRoot)
private string ModifyANCMPathInConfig(string replaceFlag, string dllName, string serverConfig)
{
var dllRoot = AppContext.BaseDirectory;
if (serverConfig.Contains(replaceFlag))
{
var arch = DeploymentParameters.RuntimeArchitecture == RuntimeArchitecture.x64 ? $@"x64\{dllName}" : $@"x86\{dllName}";

View File

@ -9,14 +9,44 @@
<PackageTags>aspnetcore;iis</PackageTags>
</PropertyGroup>
<Import Project="..\..\build\assets.props" />
<ItemGroup>
<EmbeddedResource Include="Http.config" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Server.IntegrationTesting" PrivateAssets="None" Version="$(MicrosoftAspNetCoreServerIntegrationTestingPackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.Server.IntegrationTesting" ExcludeAssets="contentfiles" PrivateAssets="None" Version="$(MicrosoftAspNetCoreServerIntegrationTestingPackageVersion)" />
<PackageReference Include="Microsoft.NETCore.Windows.ApiSets" Version="$(MicrosoftNETCoreWindowsApiSetsPackageVersion)" />
<PackageReference Include="Microsoft.Web.Administration" Version="$(MicrosoftWebAdministrationPackageVersion)" />
</ItemGroup>
<Target Name="AddPackNativeComponents" BeforeTargets="_GetPackageFiles;GetSignedPackageFiles" Condition="$(PackNativeAssets) == 'true'">
<ItemGroup>
<Content Include="%(ShimComponents.DllLocation)"
PackageCopyToOutput="true"
PackagePath="contentFiles/any/any/%(ShimComponents.Platform)/%(ShimComponents.PackageSubPath)"/>
<Content Include="%(ShimComponents.PdbLocation)"
PackageCopyToOutput="true"
PackagePath="contentFiles/any/any/%(ShimComponents.Platform)/%(ShimComponents.PackageSubPath)" />
<SignedPackageFile Include="%(ShimComponents.NativeAsset)_%(ShimComponents.Platform)"
PackagePath="contentFiles/any/any/%(ShimComponents.Platform)/%(ShimComponents.PackageSubPath)%(ShimComponents.NativeAsset).dll"
Certificate="Microsoft" />
</ItemGroup>
</Target>
<Target Name="AddRunNativeComponents" BeforeTargets="AssignTargetPaths" Condition="$(PackNativeAssets) == 'true'">
<ItemGroup>
<None Include="%(RunShimComponents.DllLocation)"
CopyToOutputDirectory="PreserveNewest"
Link="%(RunShimComponents.Platform)\%(RunShimComponents.PackageSubPath)%(RunShimComponents.NativeAsset).dll" />
<None Include="%(RunShimComponents.PdbLocation)"
CopyToOutputDirectory="PreserveNewest"
Link="%(RunShimComponents.Platform)\%(RunShimComponents.PackageSubPath)%(RunShimComponents.NativeAsset).pdb" />
</ItemGroup>
</Target>
</Project>

View File

@ -9,20 +9,20 @@ namespace Microsoft.AspNetCore.Server.IntegrationTesting.IIS
{
public static class WebConfigHelpers
{
public static Action<XElement> AddOrModifyAspNetCoreSection(string key, string value)
public static Action<XElement, string> AddOrModifyAspNetCoreSection(string key, string value)
=> AddAction(key, value, section: "aspNetCore");
public static Action<XElement> AddAction(string key, string value, string section)
public static Action<XElement, string> AddAction(string key, string value, string section)
{
return (element) =>
return (element, _) =>
{
element.Descendants(section).SingleOrDefault().SetAttributeValue(key, value);
};
}
public static Action<XElement> AddOrModifyHandlerSection(string key, string value)
public static Action<XElement, string> AddOrModifyHandlerSection(string key, string value)
{
return element =>
return (element, _) =>
{
element.Descendants("handlers")
.FirstOrDefault()

View File

@ -10,8 +10,6 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\Microsoft.AspNetCore.Server.IIS\Microsoft.AspNetCore.Server.IIS.csproj" />
<ProjectReference Include="..\..\src\Microsoft.AspNetCore.Server.IISIntegration\Microsoft.AspNetCore.Server.IISIntegration.csproj" />
<ProjectReference Include="..\..\src\Microsoft.AspNetCore.Server.IntegrationTesting.IIS\Microsoft.AspNetCore.Server.IntegrationTesting.IIS.csproj" />
<ProjectReference Include="..\Common.Tests\Common.Tests.csproj" />
<ProjectReference Include="..\WebSites\**\*.csproj">
@ -23,13 +21,6 @@
<Compile Include="..\Common.FunctionalTests\**\*.cs" />
</ItemGroup>
<ItemGroup Condition="'$(OS)' == 'Windows_NT'">
<None Include="$(MSBuildThisFileDirectory)..\..\src\AspNetCoreModuleV2\InProcessRequestHandler\bin\$(Configuration)\x64\aspnetcorev2_inprocess.dll" CopyToOutputDirectory="PreserveNewest" Visible="true" Link="%(FileName)%(Extension)" />
<None Include="$(MSBuildThisFileDirectory)..\..\src\AspNetCoreModuleV2\InProcessRequestHandler\bin\$(Configuration)\x64\aspnetcorev2_inprocess.pdb" CopyToOutputDirectory="PreserveNewest" Visible="true" Link="%(FileName)%(Extension)" />
<None Include="$(MSBuildThisFileDirectory)..\..\src\AspNetCoreModuleV2\AspNetCore\bin\$(Configuration)\x64\aspnetcorev2.dll" CopyToOutputDirectory="PreserveNewest" Visible="true" Link="%(FileName)%(Extension)" />
<None Include="$(MSBuildThisFileDirectory)..\..\src\AspNetCoreModuleV2\AspNetCore\bin\$(Configuration)\x64\aspnetcorev2.pdb" CopyToOutputDirectory="PreserveNewest" Visible="true" Link="%(FileName)%(Extension)" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Server.IntegrationTesting" Version="$(MicrosoftAspNetCoreServerIntegrationTestingPackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.Hosting" Version="$(MicrosoftAspNetCoreHostingPackageVersion)" />
@ -45,7 +36,7 @@
<ItemGroup>
<None Remove="AppHostConfig\HostableWebCore.config" />
</ItemGroup>
<ItemGroup>
<Content Update="AppHostConfig\HostableWebCore.config">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>

View File

@ -1,22 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netcoreapp2.2</TargetFrameworks>
</PropertyGroup>
<Import Project="..\..\build\assets.props" />
<ItemGroup>
<ProjectReference Include="..\..\src\Microsoft.AspNetCore.Server.IIS\Microsoft.AspNetCore.Server.IIS.csproj" />
<ProjectReference Include="..\Common.Tests\Common.Tests.csproj" />
</ItemGroup>
<ItemGroup Condition="'$(OS)' == 'Windows_NT'">
<None Include="$(MSBuildThisFileDirectory)..\..\src\AspNetCoreModuleV2\InProcessRequestHandler\bin\$(Configuration)\x64\aspnetcorev2_inprocess.dll" CopyToOutputDirectory="PreserveNewest" Visible="true" Link="%(FileName)%(Extension)" />
<None Include="$(MSBuildThisFileDirectory)..\..\src\AspNetCoreModuleV2\InProcessRequestHandler\bin\$(Configuration)\x64\aspnetcorev2_inprocess.pdb" CopyToOutputDirectory="PreserveNewest" Visible="true" Link="%(FileName)%(Extension)" />
<None Include="$(MSBuildThisFileDirectory)..\..\src\AspNetCoreModuleV2\AspNetCore\bin\$(Configuration)\x64\aspnetcorev2.dll" CopyToOutputDirectory="PreserveNewest" Visible="true" Link="%(FileName)%(Extension)" />
<None Include="$(MSBuildThisFileDirectory)..\..\src\AspNetCoreModuleV2\AspNetCore\bin\$(Configuration)\x64\aspnetcorev2.pdb" CopyToOutputDirectory="PreserveNewest" Visible="true" Link="%(FileName)%(Extension)" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Server.IntegrationTesting" Version="$(MicrosoftAspNetCoreServerIntegrationTestingPackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.Hosting" Version="$(MicrosoftAspNetCoreHostingPackageVersion)" />
@ -31,6 +25,7 @@
<ItemGroup>
<None Include="AppHostConfig\HostableWebCore.config" CopyToOutputDirectory="PreserveNewest" Link="%(FileName)%(Extension)" />
<None Include="$(AspNetCoreModuleV2ShimDll)" Condition="$(PackNativeAssets) == 'true'" CopyToOutputDirectory="PreserveNewest" Link="%(FileName)%(Extension)" />
</ItemGroup>
</Project>

View File

@ -9,8 +9,6 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\Microsoft.AspNetCore.Server.IIS\Microsoft.AspNetCore.Server.IIS.csproj" />
<ProjectReference Include="..\..\src\Microsoft.AspNetCore.Server.IISIntegration\Microsoft.AspNetCore.Server.IISIntegration.csproj" />
<ProjectReference Include="..\..\src\Microsoft.AspNetCore.Server.IntegrationTesting.IIS\Microsoft.AspNetCore.Server.IntegrationTesting.IIS.csproj" />
<ProjectReference Include="..\Common.Tests\Common.Tests.csproj" />
<ProjectReference Include="..\WebSites\**\*.csproj">
@ -22,13 +20,6 @@
<Compile Include="..\Common.FunctionalTests\**\*.cs" />
</ItemGroup>
<ItemGroup Condition="'$(OS)' == 'Windows_NT'">
<None Include="$(MSBuildThisFileDirectory)..\..\src\AspNetCoreModuleV2\InProcessRequestHandler\bin\$(Configuration)\x64\aspnetcorev2_inprocess.dll" CopyToOutputDirectory="PreserveNewest" Visible="true" Link="%(FileName)%(Extension)" />
<None Include="$(MSBuildThisFileDirectory)..\..\src\AspNetCoreModuleV2\InProcessRequestHandler\bin\$(Configuration)\x64\aspnetcorev2_inprocess.pdb" CopyToOutputDirectory="PreserveNewest" Visible="true" Link="%(FileName)%(Extension)" />
<None Include="$(MSBuildThisFileDirectory)..\..\src\AspNetCoreModuleV2\AspNetCore\bin\$(Configuration)\x64\aspnetcorev2.dll" CopyToOutputDirectory="PreserveNewest" Visible="true" Link="%(FileName)%(Extension)" />
<None Include="$(MSBuildThisFileDirectory)..\..\src\AspNetCoreModuleV2\AspNetCore\bin\$(Configuration)\x64\aspnetcorev2.pdb" CopyToOutputDirectory="PreserveNewest" Visible="true" Link="%(FileName)%(Extension)" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Server.IntegrationTesting" Version="$(MicrosoftAspNetCoreServerIntegrationTestingPackageVersion)" />
<PackageReference Include="Microsoft.AspNetCore.Hosting" Version="$(MicrosoftAspNetCoreHostingPackageVersion)" />
@ -44,7 +35,7 @@
<ItemGroup>
<None Remove="AppHostConfig\HostableWebCore.config" />
</ItemGroup>
<ItemGroup>
<Content Update="AppHostConfig\HostableWebCore.config">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>

View File

@ -23,7 +23,6 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
_fixture = fixture;
}
private const string _aspNetCoreDll = "aspnetcorev2_outofprocess.dll";
private const string _handlerVersion20 = "2.0.0";
private const string _helloWorldRequest = "HelloWorld";
private const string _helloWorldResponse = "Hello World";
@ -72,6 +71,7 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
public async Task GlobalVersion_NewVersionNumber(string version)
{
var deploymentParameters = GetGlobalVersionBaseDeploymentParameters();
CopyShimToOutput(deploymentParameters);
deploymentParameters.HandlerSettings["handlerVersion"] = version;
var deploymentResult = await DeployAsync(deploymentParameters);
@ -92,7 +92,7 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
public async Task GlobalVersion_MultipleRequestHandlers_PicksHighestOne(string version)
{
var deploymentParameters = GetGlobalVersionBaseDeploymentParameters();
CopyShimToOutput(deploymentParameters);
var deploymentResult = await DeployAsync(deploymentParameters);
var originalANCMPath = GetANCMRequestHandlerPath(deploymentResult, _handlerVersion20);
@ -115,6 +115,7 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
public async Task GlobalVersion_MultipleRequestHandlers_UpgradeWorks(string version)
{
var deploymentParameters = GetGlobalVersionBaseDeploymentParameters();
CopyShimToOutput(deploymentParameters);
var deploymentResult = await DeployAsync(deploymentParameters);
var originalANCMPath = GetANCMRequestHandlerPath(deploymentResult, _handlerVersion20);
@ -170,5 +171,43 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
{
Assert.Contains(TestSink.Writes, context => context.Message.Contains(version + @"\aspnetcorev2_outofprocess.dll"));
}
private static void CopyShimToOutput(IISDeploymentParameters parameters)
{
parameters.AddServerConfigAction(
(config, contentRoot) => {
var moduleNodes = config.DescendantNodesAndSelf()
.OfType<XElement>()
.Where(element =>
element.Name == "add" &&
element.Attribute("name")?.Value.StartsWith("AspNetCoreModule") == true &&
element.Attribute("image") != null);
var sourceDirectory = new DirectoryInfo(Path.GetDirectoryName(moduleNodes.First().Attribute("image").Value));
var destinationDirectory = new DirectoryInfo(Path.Combine(contentRoot, sourceDirectory.Name));
destinationDirectory.Create();
foreach (var element in moduleNodes)
{
var imageAttribute = element.Attribute("image");
imageAttribute.Value = imageAttribute.Value.Replace(sourceDirectory.FullName, destinationDirectory.FullName);
}
CopyFiles(sourceDirectory, destinationDirectory);
});
}
private static void CopyFiles(DirectoryInfo source, DirectoryInfo target)
{
foreach (DirectoryInfo directoryInfo in source.GetDirectories())
{
CopyFiles(directoryInfo, target.CreateSubdirectory(directoryInfo.Name));
}
foreach (FileInfo fileInfo in source.GetFiles())
{
var destFileName = Path.Combine(target.FullName, fileInfo.Name);
fileInfo.CopyTo(destFileName);
}
}
}
}

View File

@ -1,10 +1,12 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Import Project="..\..\..\build\testsite.props" />
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFrameworks>netcoreapp2.2</TargetFrameworks>
<InProcessTestSite>true</InProcessTestSite>
</PropertyGroup>
<Import Project="..\..\..\build\testsite.props" />
<ItemGroup>
<ProjectReference Include="..\..\..\src\Microsoft.AspNetCore.Server.IIS\Microsoft.AspNetCore.Server.IIS.csproj" />
</ItemGroup>

View File

@ -15,8 +15,8 @@
"nativeDebugging": true,
"environmentVariables": {
"IIS_SITE_PATH": "$(MSBuildThisFileDirectory)",
"ANCM_PATH": "$(TargetDir)$(AncmPath)",
"ANCMV2_PATH": "$(TargetDir)$(AncmV2Path)",
"ANCM_PATH": "$(AncmPath)",
"ANCMV2_PATH": "$(AncmV2Path)",
"LAUNCHER_ARGS": "$(TargetPath)",
"ASPNETCORE_ENVIRONMENT": "Development",
"LAUNCHER_PATH": "$(DotNetPath)",
@ -29,8 +29,8 @@
"commandLineArgs": "$(IISArguments)",
"environmentVariables": {
"IIS_SITE_PATH": "$(MSBuildThisFileDirectory)",
"ANCM_PATH": "$(TargetDir)$(AncmPath)",
"ANCMV2_PATH": "$(TargetDir)$(AncmV2Path)",
"ANCM_PATH": "$(AncmPath)",
"ANCMV2_PATH": "$(AncmV2Path)",
"LAUNCHER_ARGS": "$(TargetPath)",
"ASPNETCORE_ENVIRONMENT": "Development",
"LAUNCHER_PATH": "$(DotNetPath)",

View File

@ -15,8 +15,8 @@
"nativeDebugging": true,
"environmentVariables": {
"IIS_SITE_PATH": "$(MSBuildThisFileDirectory)",
"ANCM_PATH": "$(TargetDir)$(AncmPath)",
"ANCMV2_PATH": "$(TargetDir)$(AncmV2Path)",
"ANCM_PATH": "$(AncmPath)",
"ANCMV2_PATH": "$(AncmV2Path)",
"LAUNCHER_ARGS": "$(TargetPath)",
"ASPNETCORE_ENVIRONMENT": "Development",
"LAUNCHER_PATH": "$(DotNetPath)",
@ -29,8 +29,8 @@
"commandLineArgs": "$(IISArguments)",
"environmentVariables": {
"IIS_SITE_PATH": "$(MSBuildThisFileDirectory)",
"ANCM_PATH": "$(TargetDir)$(AncmPath)",
"ANCMV2_PATH": "$(TargetDir)$(AncmV2Path)",
"ANCM_PATH": "$(AncmPath)",
"ANCMV2_PATH": "$(AncmV2Path)",
"LAUNCHER_ARGS": "$(TargetPath)",
"ASPNETCORE_ENVIRONMENT": "Development",
"LAUNCHER_PATH": "$(DotNetPath)",

View File

@ -1,11 +1,12 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Import Project="..\..\..\build\testsite.props" />
<PropertyGroup>
<TargetFrameworks>netcoreapp2.2</TargetFrameworks>
<InProcessTestSite>true</InProcessTestSite>
</PropertyGroup>
<Import Project="..\..\..\build\testsite.props" />
<ItemGroup>
<ProjectReference Include="..\..\..\src\Microsoft.AspNetCore.Server.IIS\Microsoft.AspNetCore.Server.IIS.csproj" />
</ItemGroup>

View File

@ -15,8 +15,8 @@
"nativeDebugging": true,
"environmentVariables": {
"IIS_SITE_PATH": "$(MSBuildThisFileDirectory)",
"ANCM_PATH": "$(TargetDir)$(AncmPath)",
"ANCMV2_PATH": "$(TargetDir)$(AncmV2Path)",
"ANCM_PATH": "$(AncmPath)",
"ANCMV2_PATH": "$(AncmV2Path)",
"LAUNCHER_ARGS": "$(TargetPath)",
"ASPNETCORE_ENVIRONMENT": "Development",
"LAUNCHER_PATH": "$(DotNetPath)",
@ -29,8 +29,8 @@
"commandLineArgs": "$(IISArguments)",
"environmentVariables": {
"IIS_SITE_PATH": "$(MSBuildThisFileDirectory)",
"ANCM_PATH": "$(TargetDir)$(AncmPath)",
"ANCMV2_PATH": "$(TargetDir)$(AncmV2Path)",
"ANCM_PATH": "$(AncmPath)",
"ANCMV2_PATH": "$(AncmV2Path)",
"LAUNCHER_ARGS": "$(TargetPath)",
"ASPNETCORE_ENVIRONMENT": "Development",
"LAUNCHER_PATH": "$(DotNetPath)",

View File

@ -15,8 +15,8 @@
"nativeDebugging": true,
"environmentVariables": {
"IIS_SITE_PATH": "$(MSBuildThisFileDirectory)",
"ANCM_PATH": "$(TargetDir)$(AncmPath)",
"ANCMV2_PATH": "$(TargetDir)$(AncmV2Path)",
"ANCM_PATH": "$(AncmPath)",
"ANCMV2_PATH": "$(AncmV2Path)",
"LAUNCHER_ARGS": "$(TargetPath)",
"ASPNETCORE_ENVIRONMENT": "Development",
"LAUNCHER_PATH": "$(DotNetPath)",
@ -29,8 +29,8 @@
"commandLineArgs": "$(IISArguments)",
"environmentVariables": {
"IIS_SITE_PATH": "$(MSBuildThisFileDirectory)",
"ANCM_PATH": "$(TargetDir)$(AncmPath)",
"ANCMV2_PATH": "$(TargetDir)$(AncmV2Path)",
"ANCM_PATH": "$(AncmPath)",
"ANCMV2_PATH": "$(AncmV2Path)",
"LAUNCHER_ARGS": "$(TargetPath)",
"ASPNETCORE_ENVIRONMENT": "Development",
"LAUNCHER_PATH": "$(DotNetPath)",

View File

@ -1,11 +1,12 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Import Project="..\..\..\build\testsite.props" />
<PropertyGroup>
<TargetFrameworks>netcoreapp2.2</TargetFrameworks>
<InProcessTestSite>true</InProcessTestSite>
</PropertyGroup>
<Import Project="..\..\..\build\testsite.props" />
<ItemGroup>
<ProjectReference Include="..\..\..\src\Microsoft.AspNetCore.Server.IIS\Microsoft.AspNetCore.Server.IIS.csproj" />
</ItemGroup>

View File

@ -15,8 +15,8 @@
"nativeDebugging": true,
"environmentVariables": {
"IIS_SITE_PATH": "$(MSBuildThisFileDirectory)",
"ANCM_PATH": "$(TargetDir)$(AncmPath)",
"ANCMV2_PATH": "$(TargetDir)$(AncmV2Path)",
"ANCM_PATH": "$(AncmPath)",
"ANCMV2_PATH": "$(AncmV2Path)",
"LAUNCHER_ARGS": "$(TargetPath)",
"ASPNETCORE_ENVIRONMENT": "Development",
"LAUNCHER_PATH": "$(DotNetPath)",
@ -29,8 +29,8 @@
"commandLineArgs": "$(IISArguments)",
"environmentVariables": {
"IIS_SITE_PATH": "$(MSBuildThisFileDirectory)",
"ANCM_PATH": "$(TargetDir)$(AncmPath)",
"ANCMV2_PATH": "$(TargetDir)$(AncmV2Path)",
"ANCM_PATH": "$(AncmPath)",
"ANCMV2_PATH": "$(AncmV2Path)",
"LAUNCHER_ARGS": "$(TargetPath)",
"ASPNETCORE_ENVIRONMENT": "Development",
"LAUNCHER_PATH": "$(DotNetPath)",

View File

@ -4,6 +4,7 @@
<PropertyGroup>
<TargetFrameworks>$(StandardTestTfms)</TargetFrameworks>
<InProcessTestSite>true</InProcessTestSite>
</PropertyGroup>
<ItemGroup>

View File

@ -0,0 +1,150 @@
$targetFile = Join-Path (Split-Path -parent $PSCommandPath) "..\build\assets.props";
$platforms = @(
@{
Platform = "x64";
VCPlatform = "x64";
},
@{
Platform = "x86";
VCPlatform = "Win32";
}
);
$srcDir = "`$(MSBuildThisFileDirectory)..\src";
$projects = @(
@{
ProjectDirectory = "$srcDir\AspNetCoreModuleV1\AspNetCore";
ProjectName = "AspNetCore.vcxproj";
NativeAsset = "aspnetcore";
BaseOutputPath = "AspNetCoreModuleV1"
PropetyName = "AspNetCoreModuleV1Shim"
},
@{
ProjectDirectory = "$srcDir\AspNetCoreModuleV2\AspNetCore";
ProjectName = "`AspNetCore.vcxproj";
NativeAsset = "aspnetcorev2";
BaseOutputPath = "AspNetCoreModuleV2"
PropetyName = "AspNetCoreModuleV2Shim"
},
@{
ProjectDirectory = "$srcDir\AspNetCoreModuleV2\InProcessRequestHandler";
ProjectName = "InProcessRequestHandler.vcxproj";
NativeAsset = "aspnetcorev2_inprocess";
BaseOutputPath = "AspNetCoreModuleV2";
PropetyName = "AspNetCoreModuleV2InProcessHandler"
},
@{
ProjectDirectory = "$srcDir\AspNetCoreModuleV2\OutOfProcessRequestHandler";
ProjectName = "OutOfProcessRequestHandler.vcxproj";
NativeAsset = "aspnetcorev2_outofprocess";
BaseOutputPath = "AspNetCoreModuleV2";
PackageSubPath = "`$(AspNetCoreModuleOutOfProcessVersion)\";
PropetyName = "AspNetCoreModuleV2OutOfProcessHandler"
}
);
$currentPlatform = @{
Platform = "`$(NativePlatform)";
VCPlatform = "`$(NativeVCPlatform)";
};
$components = @();
$shimComponents = @();
$inProcessComponents = @();
$runShimComponents = @();
$runInProcessComponents = @();
$properties = @();
function CopyProperties($from, $to)
{
foreach ($key in $from.Keys)
{
$to.Add($key, $from.$key);
}
}
function Write-Group($group, $name)
{
return $(
foreach ($item in $group){
" <$name$(foreach ($pair in $item.GetEnumerator()) {
"`n $($pair.Key)=`"`"$($pair.Value)`"`""})
/>`n"});
}
function Write-Properties($group)
{
return $(
foreach ($item in $group){
"`n <$($item.Name)>$($item.Value)</$($item.Name)>"});
}
function New-Component($project, $platform)
{
$component = [ordered]@{};
CopyProperties -from $platform -to $component;
CopyProperties -from $project -to $component;
CopyProperties -from @{
Include = "$($project.ProjectDirectory)\$($project.ProjectName)";
DllLocation = "$($project.ProjectDirectory)\bin\`$(Configuration)\$($platform.VCPlatform)\$($project.NativeAsset).dll";
PdbLocation = "$($project.ProjectDirectory)\bin\`$(Configuration)\$($platform.VCPlatform)\$($project.NativeAsset).pdb";
} -to $component;
return $component;
}
foreach ($project in $projects)
{
foreach ($platform in $platforms)
{
$component = New-Component $project $platform;
$components += $component;
if ($project.ProjectName.Contains("InProcess"))
{
$inProcessComponents += $component;
}
else
{
$shimComponents += $component;
}
}
$properties += @{
Name = "$($project.PropetyName)Dll";
Value = "$($project.ProjectDirectory)\bin\`$(Configuration)\`$(NativeVCPlatform)\$($project.NativeAsset).dll";
};
$runComponent = New-Component $project $currentPlatform;
if ($project.ProjectName.Contains("InProcess"))
{
$runInProcessComponents += $runComponent;
}
else
{
$runShimComponents += $runComponent;
}
}
$content = @"
<!-- This file is autogenerated -->
<Project>
<PropertyGroup>
<PackNativeAssets Condition="'`$(OS)' == 'Windows_NT'">true</PackNativeAssets>
<NativePlatform Condition="'`$(Platform)' == 'AnyCPU'">x64</NativePlatform>
<NativePlatform Condition="'`$(NativePlatform)' == ''">`$(Platform)</NativePlatform>
<NativeVCPlatform Condition="'`$(NativePlatform)' == 'x86'">Win32</NativeVCPlatform>
<NativeVCPlatform Condition="'`$(NativeVCPlatform)' == ''">`$(NativePlatform)</NativeVCPlatform>
</PropertyGroup>
<ItemGroup>
$(Write-Group $components "Components" )
$(Write-Group $shimComponents "ShimComponents")
$(Write-Group $inProcessComponents "InProcessComponents")
$(Write-Group $runShimComponents "RunShimComponents")
$(Write-Group $runInProcessComponents "RunInProcessComponents")
</ItemGroup>
<PropertyGroup>
$(Write-Properties $properties)
</PropertyGroup>
</Project>
"@;
[IO.File]::WriteAllLines($targetFile, $content)