未验证 提交 5e3eec9a 编写于 作者: A Andy Gocke 提交者: GitHub

Add references to System.IO.Pipes.AccessControl (#24457)

When adding the reference to System.IO.Pipes.AccessControl for the
compiler server to use on CoreCLR, I unified the pathway for the desktop
and CoreCLR server access control code. This means that
System.IO.Pipes.AccessControl needed to be added as a dependent DLL for
desktop too, but I forgot to do that. This change adds
System.IO.Pipes.AccessControl as a dependent DLL in all the places where
the build task is deployed.
上级 2aa793ee
......@@ -92,7 +92,12 @@ private static Assembly LoadAssemblyWithRedirects(AssemblyName name)
switch (name.Name)
{
case "System.IO.Pipes.AccessControl":
return TryRedirectToRuntimesDir(name);
var assembly = TryRedirectToRuntimesDir(name);
if (assembly != null)
{
return assembly;
}
break;
}
return Assembly.Load(name);
......@@ -128,14 +133,17 @@ private static Assembly TryRedirectToRuntimesDir(AssemblyName name)
if (File.Exists(assemblyPath))
{
CompilerServerLogger.Log($"Loading from: {assemblyPath}");
return (Assembly)typeof(Assembly).GetTypeInfo()
.GetDeclaredMethod("LoadFile")
?.Invoke(null, parameters: new object[] { assemblyPath });
return LoadAssemblyFromPath(assemblyPath);
}
CompilerServerLogger.Log($"File not found: {assemblyPath}");
return null;
Assembly LoadAssemblyFromPath(string path)
=> (Assembly)typeof(Assembly).GetTypeInfo()
.GetDeclaredMethod("LoadFile")
?.Invoke(null, parameters: new object[] { assemblyPath });
}
private static bool KeysEqual(byte[] left, byte[] right)
......
......@@ -15,6 +15,7 @@
[assembly: ProvideCodeBase(CodeBase = "$PackageFolder$\\System.IO.FileSystem.DriveInfo.dll")]
[assembly: ProvideCodeBase(CodeBase = "$PackageFolder$\\System.IO.FileSystem.Primitives.dll")]
[assembly: ProvideCodeBase(CodeBase = "$PackageFolder$\\System.IO.Pipes.dll")]
[assembly: ProvideCodeBase(CodeBase = "$PackageFolder$\\System.IO.Pipes.AccessControl.dll")]
[assembly: ProvideCodeBase(CodeBase = "$PackageFolder$\\System.Security.AccessControl.dll")]
[assembly: ProvideCodeBase(CodeBase = "$PackageFolder$\\System.Security.Claims.dll")]
[assembly: ProvideCodeBase(CodeBase = "$PackageFolder$\\System.Security.Cryptography.Algorithms.dll")]
......
......@@ -57,6 +57,7 @@
<NuGetPackageToIncludeInVsix Include="System.IO.FileSystem.DriveInfo" />
<NuGetPackageToIncludeInVsix Include="System.IO.FileSystem.Primitives" />
<NuGetPackageToIncludeInVsix Include="System.IO.Pipes" />
<NuGetPackageToIncludeInVsix Include="System.IO.Pipes.AccessControl" />
<NuGetPackageToIncludeInVsix Include="System.Linq.Expressions" />
<NuGetPackageToIncludeInVsix Include="System.Linq.Parallel" />
<NuGetPackageToIncludeInVsix Include="System.ObjectModel" />
......
......@@ -73,6 +73,7 @@
<file src="Exes\Toolset\System.IO.FileSystem.DriveInfo.dll" target="tools" />
<file src="Exes\Toolset\System.IO.FileSystem.Primitives.dll" target="tools" />
<file src="Exes\Toolset\System.IO.Pipes.dll" target="tools" />
<file src="Exes\Toolset\System.IO.Pipes.AccessControl.dll" target="tools" />
<file src="Exes\Toolset\System.Reflection.Metadata.dll" target="tools" />
<file src="Exes\Toolset\System.Security.AccessControl.dll" target="tools" />
<file src="Exes\Toolset\System.Security.Claims.dll" target="tools" />
......
......@@ -550,7 +550,7 @@ Public Class BuildDevDivInsertionFiles
packageName,
packageVersion,
isNative:=native IsNot Nothing,
isFacade:=frameworkAssemblies IsNot Nothing))
isFacade:=frameworkAssemblies IsNot Nothing OrElse packageName = "System.IO.Pipes.AccessControl"))
End If
Next
Next
......@@ -852,6 +852,7 @@ Public Class BuildDevDivInsertionFiles
add("Exes\Toolset\System.IO.FileSystem.DriveInfo.dll")
add("Exes\Toolset\System.IO.FileSystem.Primitives.dll")
add("Exes\Toolset\System.IO.Pipes.dll")
add("Exes\Toolset\System.IO.Pipes.AccessControl.dll")
add("Exes\Toolset\System.Reflection.Metadata.dll")
add("Exes\Toolset\System.Security.AccessControl.dll")
add("Exes\Toolset\System.Security.Claims.dll")
......
......@@ -39,6 +39,7 @@
<PackageReference Include="System.IO.FileSystem" Version="$(SystemIOFileSystemVersion)" />
<PackageReference Include="System.IO.FileSystem.Primitives" Version="$(SystemIOFileSystemPrimitivesVersion)" />
<PackageReference Include="System.IO.Pipes" Version="$(SystemIOPipesVersion)" />
<PackageReference Include="System.IO.Pipes.AccessControl" Version="$(SystemIOPipesAccessControlVersion)" />
<PackageReference Include="System.Runtime.Numerics" Version="$(SystemRuntimeNumericsVersion)" />
<PackageReference Include="System.Security.AccessControl" Version="$(SystemSecurityAccessControlVersion)" />
<PackageReference Include="System.Security.Cryptography.Algorithms" Version="$(SystemSecurityCryptographyAlgorithmsVersion)" />
......
......@@ -44,6 +44,7 @@ folder InstallDir:\MSBuild\15.0\Bin\Roslyn
file source=$(OutputPath)\Vsix\CompilerExtension\System.IO.FileSystem.DriveInfo.dll vs.file.ngenArchitecture=all
file source=$(OutputPath)\Vsix\CompilerExtension\System.IO.FileSystem.Primitives.dll vs.file.ngenArchitecture=all
file source=$(OutputPath)\Vsix\CompilerExtension\System.IO.Pipes.dll vs.file.ngenArchitecture=all
file source=$(OutputPath)\Vsix\CompilerExtension\System.IO.Pipes.AccessControl.dll vs.file.ngenArchitecture=all
file source=$(OutputPath)\Vsix\CompilerExtension\System.Security.AccessControl.dll vs.file.ngenArchitecture=all
file source=$(OutputPath)\Vsix\CompilerExtension\System.Security.Claims.dll vs.file.ngenArchitecture=all
file source=$(OutputPath)\Vsix\CompilerExtension\System.Security.Cryptography.Algorithms.dll vs.file.ngenArchitecture=all
......
use vs
package name=PortableFacades
version=1.5.0.0
version=1.6.0.0
folder InstallDir:\Common7\IDE\PrivateAssemblies
file source="$(NuGetPackageRoot)\System.AppContext\4.3.0\lib\net46\System.AppContext.dll" vs.file.ngen=yes
......@@ -12,6 +12,7 @@ folder InstallDir:\Common7\IDE\PrivateAssemblies
file source="$(NuGetPackageRoot)\System.IO.Compression\4.3.0\runtimes\win\lib\net46\System.IO.Compression.dll" vs.file.ngen=yes
file source="$(NuGetPackageRoot)\System.IO.FileSystem\4.3.0\lib\net46\System.IO.FileSystem.dll" vs.file.ngen=yes
file source="$(NuGetPackageRoot)\System.IO.FileSystem.Primitives\4.3.0\lib\net46\System.IO.FileSystem.Primitives.dll" vs.file.ngen=yes
file source="$(NuGetPackageRoot)\System.IO.Pipes.AccessControl\4.3.0\runtimes\win\lib\net46\System.IO.Pipes.AccessControl.dll" vs.file.ngen=yes
file source="$(NuGetPackageRoot)\System.IO.Pipes\4.3.0\runtimes\win\lib\net46\System.IO.Pipes.dll" vs.file.ngen=yes
file source="$(NuGetPackageRoot)\System.Net.Security\4.3.0\runtimes\win\lib\net46\System.Net.Security.dll" vs.file.ngen=yes
file source="$(NuGetPackageRoot)\System.Net.Sockets\4.3.0\lib\net46\System.Net.Sockets.dll" vs.file.ngen=yes
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册