我正在尝试构建一个在WPF应用程序和UWP应用程序之间共享的组件。
我创建了一个.NET标准库来包含公共代码,如果我将库版本保持为1.2,我就可以构建所有内容。
图书馆需要从X509Store获得证书:
internal X509Certificate2 GetClientCertificate(string thumbPrint)
{
if (string.IsNullOrEmpty(thumbPrint))
{
throw new ArgumentNullException(nameof(thumbPrint));
}
else
{
var store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);
var certificates = store.Certificates.Find(X509FindType.FindByThumbprint, thumbPrint, true);
if (certificates.Count > 0)
{
return certificates[0];
}
else
{
throw new Exception($"No client certificate found for thumbprint {thumbPrint}");
}
}
}
如果置于UWP或WPF项目中,但放置在.NET标准库中时,此代码可以正常工作
.NET Standard 1.2中是否支持证书存储区?如果没有,还有其他方法(在两个项目中没有引用相同的代码)我可以实现具有X509Store访问权限的组件吗?
答案 0 :(得分:0)
您的共享项目可以使用MSBuild的多目标功能进行定位,
然后,即使没有将WPF项目升级到.NET Framework 4.6.1,您也可以共享代码。
您可以在https://blog.lextudio.com/tips-for-net-nuget-package-authors-august-2017-48f07604e4a0
中找到更多提示