我正在尝试对tSQLt框架进行一些改进,并且大部分已经完成,但是由于我没有涉及的与证书相关的一些测试仍然失败,因此无法完成。
[exec] |18|[InstallExternalAccessKeyTests].[test creates correct certificate in master] | 120|Failure|
[exec] |19|[InstallExternalAccessKeyTests].[test tSQLt can be set to EXTERNAL ACCESS after InstallExternalAccessKey executed] | 333|Failure|
[exec] |20|[InstallExternalAccessKeyTests].[test tSQLtExternalAccessKey install data is signed with same key as tSQLt.clr] | 10|Failure|
失败的错误是:
Expected: %publickeytoken=8c9a92de0f9c7794,%
Actual: tsqltclr, version=1.0.7216.13228, culture=neutral, publickeytoken=8d3f4bf59e4c22fd, processorarchitecture=msil
我会尝试描述我的安装过程。
我使用以下指南安装了这个框架的源代码。然而,之后我无法启动项目,因为它出现了以下错误,并且整个问题解决过程都在SO帖子中完成:
为了解决这个问题,我已经为每个项目创建了没有密码的新密钥:
[exec]
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2482,5): error MSB3325: 无法导入以下密钥文件: tSQLtOfficialSigningKey.pfx。密钥文件可能受到密码保护。 要纠正此问题,请尝试重新导入证书或手动安装证书到 Strong Name CSP, 并使用以下密钥容器名称:VS_KEY_C20B79DE0583A5C1 [E:\Source\tSQLt\tSQLtCLR\tSQLtCLR\tSQLtCLR.csproj] [exec]
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2482,5): error MSB3321: 导入密钥文件“tSQLtOfficialSigningKey.pfx”已取消。 [E:\Source\tSQLt\tSQLtCLR\tSQLtCLR\tSQLtCLR.csproj]
要通过此问题,我已为每个项目创建了没有密码的新密钥:
我发现它创建了snk
文件,而不是原始的pfx
。之后我尝试再次运行构建,但出现了上述错误。
tsql
框架呢?它会在你的数据库代码中包含很多代码,还有很多 SQL CLR 函数。我曾经尝试在两个大型项目中使用它,但都失败了。最好的方法是使用 .net 或/和 SQL 创建自己的测试,并通过某些工具执行它们以实现并行执行。 - gotqn