-
Notifications
You must be signed in to change notification settings - Fork 1.1k
SDK not deploying facades correctly #1552
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
I've made some progress figuring out what is going on here. A simplified repro is the following project: <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net461</TargetFramework>
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="System.Security.Cryptography.Algorithms" Version="4.3.0" />
</ItemGroup>
</Project> Setting the
cc @ericstj |
Looks the same as #1510. |
@ericstj if that is the case what is the work around? I don't see one listed in the bug. This is completely blocking our 2.0 transition. |
@jaredpar there is a workaround that we used here: |
@onovotny some of our project that hit this bug use |
What project is it? Could you just test for an empty |
@onovotny there are a few. Most notably at the moment is |
@onovotny getting a lot of the following now
|
That's getting beyond me :( That property worked in my case, but it may be something similar to unblock you. |
@jaredpar Try adding the following to work around this issue: <Target Name="WorkaroundConflictResolution" AfterTargets="_ComputeActiveTFMFileDependencies"
Condition="'$(PlatformTarget)' == 'AnyCPU'">
<ItemGroup>
<_ActiveTFMFileDependencies Remove="@(_ActiveTFMFileDependencies->WithMetadataValue('FileGroup', 'RuntimeTarget'))" />
</ItemGroup>
</Target> EDIT: You might want to also condition it on whether you're targeting .NET Framework |
@dsplaisted thanks! A quick local check seems to confirm that works. Testing out in Jenkins now. |
@dsplaisted that's leading to the following errors
|
@jaredpar Is this in the same project or elsewhere? And do you see the failure locally or just in Jenkins? |
@dsplaisted it's in other projects. Essentially the state of the world is the following with respect to your work around:
😦 |
@jaredpar If you're applying the target to all projects, then update the condition on it to only apply to projects targeting .NET Framework: <Target Name="WorkaroundConflictResolution" AfterTargets="_ComputeActiveTFMFileDependencies"
Condition="'$(PlatformTarget)' == 'AnyCPU' And '$(TargetFrameworkIdentifier)' == '.NETFramework'">
<ItemGroup>
<_ActiveTFMFileDependencies Remove="@(_ActiveTFMFileDependencies->WithMetadataValue('FileGroup', 'RuntimeTarget'))" />
</ItemGroup>
</Target> |
@dsplaisted great! That seems to be working now. Thanks for the help here. |
Closing as duplicate of #1510. |
Repo steps:
The expected steps is that System.Security.Cryptography.Algorithms 4.1.0.0 appears in the directory
Binaries\Debug\UnitTests\CSharpCompilerSemanticTest
. The actual result is that it does not and this prevents the tests from running.The lib is clearly needed in this scenario. The most recent commit includes the following code definition:
This is important because
IncrementalHash
is not a type forward inside the lib version of S.S.C.Algorithms. Instead it's an actual type definition. Lacking the assembly the code will fail to run.Interestingly enough though a binding redirect is generated for S.S.C.Algorithms and it correctly merges 4.0.0.0-4.1.0.0 to 4.1.0.0.
This is currently blocking roslyn from moving to 2.0SDK. Is there any work around here? Some way to force this DLL to get deployed?
The text was updated successfully, but these errors were encountered: