直到最近,我们的 .Net Core 3.1 应用程序还在 Azure 管道上构建和发布良好。但是在过去的几天里,构建管道开始失败并出现错误:
##[error]C:\Program Files\dotnet\sdk\5.0.100\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(241,5):
Error NETSDK1005: Assets file 'D:\a\1\s\ProjectFolder\src\Project\obj\project.assets.json' doesn't have a target for 'netcoreapp3.1'.
Ensure that restore has run and that you have included 'netcoreapp3.1' in the TargetFrameworks for your project.
Run Code Online (Sandbox Code Playgroud)
(ResolvePackageAssets target) ->
C:\Program Files\dotnet\sdk\5.0.100\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(241,5):
error NETSDK1005: Assets file 'D:\a\1\s\ProjectFolder\src\Project\obj\project.assets.json' doesn't have a target for 'netcoreapp3.1'.
Ensure that restore has run and that you have included 'netcoreapp3.1' in the TargetFrameworks for your project. [D:\a\1\s\ProjectFolder\src\Project\Project.csproj]
Run Code Online (Sandbox Code Playgroud)
对于失败的解决方案构建步骤,构建管道设置如下。
任何想法如何以最少的更改解决此问题?
只是想知道如何使用新Azure.Security.KeyVault库实现相同的目标:
Azure.Security.KeyVault.CertificatesAzure.Security.KeyVault.Secrets特别是关于从证书 SecretId 获取 PFX 内容。新库似乎没有提供通过 SecretId 或 SecretIdentifier 获取 Secret 的方法,只能通过名称。
为了匹配以前这样做的事情:
var azureServiceTokenProvider = new AzureServiceTokenProvider();
var keyVaultClient = new KeyVaultClient(
new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
CertificateBundle certificateBundle = await keyVaultClient.GetCertificateAsync(certificateIdentifier);
SecretBundle certificateWithPrivateKey = await keyVaultClient.GetSecretAsync(certificateBundle.SecretIdentifier.Identifier);
byte[] certificateWithPrivateKeyDecoded = Convert.FromBase64String(certificateWithPrivateKey.Value);
var certificate = new X509Certificate2(certificateWithPrivateKeyDecoded, (string)null);
return certificate;
Run Code Online (Sandbox Code Playgroud) 尝试将新的 SQL Server 身份验证用户添加到 Azure SQL 数据库实例。正在使用下面的脚本。我以服务器管理员身份登录。
但该脚本在成员角色分配时失败。登录名和用户已创建,但我无法登录数据库服务器。
脚本:
use [master]
CREATE LOGIN test WITH password='somethingsecure';
GO
CREATE USER test FROM LOGIN test;
GO
EXEC sp_addrolemember 'db_datareader', 'test';
EXEC sp_addrolemember 'db_datawriter', 'test';
Run Code Online (Sandbox Code Playgroud)
但是上面的脚本失败并出现以下错误:
消息 15151,级别 16,状态 1,第 6 行 无法更改角色“db_datareader”,因为它不存在或您没有权限。
消息 15151,级别 16,状态 1,第 6 行 无法更改角色“db_datawriter”,因为它不存在或您没有权限。