如何从源代码构建tSQLt?

时间:2013-04-05 18:14:36

标签: msbuild tsqlt

我可以通过从源代码构建来构建Sourceforge上托管的相同tSQLt.zip吗?我该怎么做?

我使用此命令检查了tSQLt SVN repository的头部(目前为r200):

svn checkout https://tsqlt.svn.sourceforge.net/svnroot/tsqlt tsqlt

Build目录中有一个名为buildNotes.txt的文件,用于描述构建过程。第一步看起来像这样:

Setting up tSQLt build notes:
1. You must run MSBuild from the command line once before running the build. The reason is that the first time it prompts for the signing
password. The signing password is: P@$$30rd

This gets somehow stored internally in Windows, and will not need to
be re-entered again.

Here is an example of the MSBuild command:
c:\Projects\tSQLt.sourceforge\tSQLtCLR\tSQLtCLR>C:/Windows/Microsoft.NET/Framework/v2.0.50727/msbuild.exe tSQLtCLR.csproj /p:Configuration=Release /nologo

当我运行示例命令时,我看到一个密码提示:

Import key file

我粘贴密码“P @ $$ 30rd”并单击“确定”。密码显然不正确:

Error importing key

msbuild的命令输出如下所示:

C:\Users\iain.CORP\SkyDrive\Software\SQL Server\tSQLt\svn\tsqlt\tSQLtCLR\tSQLtCLR>C:/Windows/Microsoft.NET/Framework/v2.0.50727/msbuild.exe tSQLtCLR.csproj /p:Configuration=Release /nologo
Build started 05/04/2013 19:07:15.
__________________________________________________
Project "C:\Users\iain.CORP\SkyDrive\Software\SQL Server\tSQLt\svn\tsqlt\tSQLtCLR\tSQLtCLR\tSQLtCLR.csproj" (default targets):

Target GetFrameworkPaths:
    Could not locate the .NET Framework SDK.  The task is looking for the path to the .NET Framework SDK at the location specified in the SDKInstallRootv2.0 value of the registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework.  You may be able to solve the problem by doing one of the following:  1.) Install the .NET Framework SDK.  2.) Manually set the above registry key to the correct location.
Target ResolveKeySource:
    C:\Windows\Microsoft.NET\Framework\v2.0.50727\Microsoft.Common.targets(1728,7): error MSB3321: Importing key file "SigningKey.pfx" was canceled.
Done building target "ResolveKeySource" in project "tSQLtCLR.csproj" -- FAILED.

Done building project "tSQLtCLR.csproj" -- FAILED.

Build FAILED.
C:\Windows\Microsoft.NET\Framework\v2.0.50727\Microsoft.Common.targets(1728,7): error MSB3321: Importing key file "SigningKey.pfx" was canceled.
    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:07.39

C:\Users\iain.CORP\SkyDrive\Software\SQL Server\tSQLt\svn\tsqlt\tSQLtCLR\tSQLtCLR>C:/Windows/Microsoft.NET/Framework/v2.0.50727/msbuild.exe tSQLtCLR.csproj /p:Configuration=Release /nologo
Build started 05/04/2013 19:07:15.
__________________________________________________
Project "C:\Users\iain.CORP\SkyDrive\Software\SQL Server\tSQLt\svn\tsqlt\tSQLtCLR\tSQLtCLR\tSQLtCLR.csproj" (default targets):

Target GetFrameworkPaths:
    Could not locate the .NET Framework SDK.  The task is looking for the path to the .NET Framework SDK at the location specified in the SDKInstallRootv2.0 value of the registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework.  You may be able to solve the problem by doing one of the following:  1.) Install the .NET Framework SDK.  2.) Manually set the above registry key to the correct location.
Target ResolveKeySource:
    C:\Windows\Microsoft.NET\Framework\v2.0.50727\Microsoft.Common.targets(1728,7): error MSB3321: Importing key file "SigningKey.pfx" was canceled.
Done building target "ResolveKeySource" in project "tSQLtCLR.csproj" -- FAILED.

Done building project "tSQLtCLR.csproj" -- FAILED.

Build FAILED.
C:\Windows\Microsoft.NET\Framework\v2.0.50727\Microsoft.Common.targets(1728,7): error MSB3321: Importing key file "SigningKey.pfx" was canceled.
    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:07.39

输出包含消息“无法找到.NET Framework SDK”。这是我必须安装的东西吗?

1 个答案:

答案 0 :(得分:0)

看起来确实有错误的密码。 您可以在Visual Studio界面中打开tSQLtCLR\tSQLtCLR.sln并尝试键入或更改密码。在这两种情况下,我都收到“旧密码无效”消息。

实际上你不需要这个强名称密钥文件。强名称是SQL CLR程序集的先决条件,您可以使用任何文件,包括您自己的文件。您可以使用相同的名称和密码创建新的密钥文件,并成功构建程序集。

enter image description here

如果安装了Visual Studio,则不需要.NET Framework SDK,因为您可以通过界面对程序集进行签名。但是,如果您没有VS,则必须安装SDK才能使用SDK中的sn.exe

我也尝试了this解决方案,但它也没有成功

enter image description here