Skip to content

Conversation

@KevinRansom
Copy link
Contributor

Fixes: #6987

The issue is that the desktop compiler uses The deprecated mscoree api: ICLRStrongName to do strongname signing. There is a permissions issue with C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys that shows up from time to time. Once it does signing with a non admin user stops working.

Here is a page describing how to fix the permissions: https://docs.microsoft.com/en-us/troubleshoot/windows-server/windows-security/default-permissions-machinekeys-folders

The section on Permissions for the everyone group is the relevant section.

This PR fixes the issue, by using the signing code we wrote for the coreclr on the desktop as well. We retain the use of ICoreClrStrongName, only on the desktop compiler for the key container scenario.

Whilst doing this I also took the opportunity to refactor the code into ilsign.fsi/ilsign.fs, so now the signing code is in one place.

Enjoy

Kevin

@cartermp cartermp merged commit a08fb35 into dotnet:main Sep 14, 2020
KevinRansom added a commit that referenced this pull request Sep 14, 2020
* Bloody mutable fields (#10116)

* Fix 9150 --- #i nuget on desktop witout net48 ref assemblies fails. (#10114)

* signing (#10108)

Co-authored-by: Kevin Ransom (msft) <[email protected]>
@KevinRansom KevinRansom deleted the signing branch October 29, 2020 18:57
nosami pushed a commit to xamarin/visualfsharp that referenced this pull request Feb 23, 2021
nosami pushed a commit to xamarin/visualfsharp that referenced this pull request Feb 23, 2021
* Bloody mutable fields (dotnet#10116)

* Fix 9150 --- #i nuget on desktop witout net48 ref assemblies fails. (dotnet#10114)

* signing (dotnet#10108)

Co-authored-by: Kevin Ransom (msft) <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Strongname signature size in F# project using new sdk base project running msbuild only

2 participants