Donc j'essaie d'obtenir un exemple de compilation à partir de .NET Core Api Docs ECDsaCng Class. J'ai compilé des erreurs à propos d'un assemblage. J'ai téléchargé .NET Core 2.0 puis ajouté une référence à C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.0.0\System.Security.Cryptography.Cng.dll
nouvellement installé et certains termes sont passés du noir au bleu clair montrant la reconception des jetons mais j'ai eu des erreurs de compilation, je suppose qu'il s'agit d'un problème de version..NET Core 2.0 Crypto échantillon ne fonctionne pas - Erreur Cng v4.3 utilise Algorithms v4.3 plus élevé que référencé Algorithms v4.2
J'ai recommencé à zéro après avoir installé .NET Core 2.0 en cas de doute. Il s'agit donc d'un projet créé récemment par l'Assistant Nouveau projet avec une nouvelle installation. Donc je suis coincé maintenant (je suis le genre de gars qui va fermer toutes les fenêtres et les ouvrir à nouveau).
Le code est donné ci-dessous. et un message d'erreur typique est donné sous la forme d'une citation en-dessous.
// https://docs.microsoft.com/en-gb/dotnet/api/system.security.cryptography.ecdsacng?view=netcore-2.0
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
//Added Dependencies/Reference to C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.0.0\System.Security.Cryptography.Cng.dll;
Namespace DotNetCoreEllipticCurveDigitalSignerConsl
{
class Alice
{
public static void Main(string[] args)
{
Bob bob = new Bob();
using (ECDsaCng dsa = new ECDsaCng())
{
dsa.HashAlgorithm = CngAlgorithm.Sha256;
bob.key = dsa.Key.Export(CngKeyBlobFormat.EccPublicBlob);
byte[] data = new byte[] { 21, 5, 8, 12, 207 };
byte[] signature = dsa.SignData(data);
bob.Receive(data, signature);
}
}
}
public class Bob
{
public byte[] key;
public void Receive(byte[] data, byte[] signature)
{
using (ECDsaCng ecsdKey = new ECDsaCng(CngKey.Import(key, CngKeyBlobFormat.EccPublicBlob)))
{
if (ecsdKey.VerifyData(data, signature))
Console.WriteLine("Data is good");
Else
Console.WriteLine("Data is bad");
}
}
}
}
Code de gravité Description du projet État Suppression de la ligne de fichier Erreur Assemblée CS1705 'System.Security.Cryptography.Cng' avec l'identité « System.Security.Cryptography.Cng, Version = 4.3.0.0, Culture = neutre, PublicKeyToken = b03f5f7f11d50a3a 'utilise ' System.Security.Cryptography.Algorithms, Version = 4.3.0.0, Culture = neutral , PublicKeyToken = b03f5f7f11d50a3a' qui a une version supérieure que l'assemblage référencé ' System.Security.Cryptography. Algorithmes 'avec identité ' System.Secu rity.Cryptography.Algorithms, Version = 4.2.0.0, Culture = neutral , PublicKeyToken = b03f5f7f11d50a3a » DotNetCoreEllipticCurveDigitalSignerConsl c: \ users \ Documents \ simon \ Visual Studio 2017 \ Projects \ DotNetCoreEllipticCurveDigitalSignerConsl \ DotNetCoreEllipticCurveDigitalSignerConsl \ CSC 1 actif
EDIT: Ajout de fichier csproj selon la demande dans les commentaires
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp1.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Reference Include="System.Security.Cryptography.Cng">
<HintPath>..\..\..\..\..\..\..\Program Files\dotnet\shared\Microsoft.NETCore.App\2.0.0\System.Security.Cryptography.Cng.dll</HintPath>
</Reference>
</ItemGroup>
</Project>
EDIT: Je fichier csproj modifié manuellement à TargetFramework netcoreapp2.0 selon ce blog Rick Strahl (MVP) Upgrading to .NET Core 2.0 Preview sur reoping le proje ct il y avait un délai un dans la sortie de la fenêtre Sortie du gestionnaire de paquets a déclaré Restoring NuGet packages...
et la barre d'état a déclaré Installing Microswoft.NET.Core.App 2.0.0.
Ensuite, l'erreur de compilation des squigglies rouges a disparu.
Et maintenant il compile, bonne nouvelle. Les mauvaises nouvelles sont maintenant il y a une erreur d'exécution
Il est une application console par le façon. –
Je ne pense pas que vous pouvez choisir un seul assemblage sur 2.0. Vous devez mettre à niveau l'ensemble de l'application vers un netstandard2.0 (ou netcoreapp2.0) pour obtenir tous les assemblages correctement. –
@ChadNedzlek: il s'agit strictement du noyau .net car il doit éventuellement fonctionner sous Linux, même si je veux d'abord le faire fonctionner sur Windows 8.1 64 bits Pro. Aussi, si vous lisez le post, vous verrez que j'ai commencé le projet à partir de zéro, (via le menu standard et l'assistant suivant) après l'installation de .NET Core 2.0 et il a échoué. –