gpt4 book ai didi

.net - CLR SQL 程序集 : Get the Bytestream?

转载 作者:行者123 更新时间:2023-12-03 20:07:39 25 4
gpt4 key购买 nike

我有一个想要部署的 SQL CLR dll,但我发现您可以将字节流/varbinary_literal/varbinary_expression/assembly 位嵌入到文本文件中,以避开打包 DLL 并确保 CREATE ASSEMBLY command 可访问的麻烦。

但是我还没有找到如何获得该字节流/varbinary_literal/varbinary_expression/assembly bits 值。我没有找到任何一致的术语,以及我在使用 Load() 时不断发现的。

最佳答案

它只是 dll 的十六进制表示。这一点应该可以解决问题:

    static string GetHexString(string assemblyPath)
{
if (!Path.IsPathRooted(assemblyPath))
assemblyPath = Path.Combine(Environment.CurrentDirectory, assemblyPath);

StringBuilder builder = new StringBuilder();
builder.Append("0x");

using (FileStream stream = new FileStream(assemblyPath,
FileMode.Open, FileAccess.Read, FileShare.Read))
{
int currentByte = stream.ReadByte();
while (currentByte > -1)
{
builder.Append(currentByte.ToString("X2", CultureInfo.InvariantCulture));
currentByte = stream.ReadByte();
}
}

return builder.ToString();
}

您应该像这样使用结果字符串:
string hexString = GetHexString(assemblyPath);
string sql = "CREATE ASSEMBLY [" + assemblyName + "] FROM " + hexString +
" WITH PERMISSION_SET = " + somePermissionSet;

关于.net - CLR SQL 程序集 : Get the Bytestream?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2885335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com