我可以從流中創建程序集,就像MSSMS生成的程序集腳本一樣嗎? 我需要從放置在SQL Server無權訪問的目錄中的DLL創建程序集。
雖然程序集安裝程序可以訪問程序集。
所以我的問題是:我可以讀取程序集並從流讀取生成創建?SQL Server 2005從C#流創建程序集#
謝謝。
我可以從流中創建程序集,就像MSSMS生成的程序集腳本一樣嗎? 我需要從放置在SQL Server無權訪問的目錄中的DLL創建程序集。
雖然程序集安裝程序可以訪問程序集。
所以我的問題是:我可以讀取程序集並從流讀取生成創建?SQL Server 2005從C#流創建程序集#
謝謝。
我想我想通了..
我使用Tomalak的字節數組來從this post十六進制方法。
private string getAssemblyAsHex(string asmPath)
{
using (BinaryReader br = new BinaryReader(File.OpenRead(asmPath)))
{
byte[] buff = new byte[br.BaseStream.Length];
br.Read(buff, 0, buff.Length - 1);
return ByteArrayToString(buff);
}
}
private static string ByteArrayToString(byte[] ba)
{
StringBuilder hex = new StringBuilder(ba.Length * 2);
foreach (byte b in ba)
hex.AppendFormat("{0:x2}", b);
return hex.ToString();
}
然後我就CONCAT此字符串CREATE ASSEMBLY語句。
我只是驚喜地發現的Visual Studio 2013將自動生成與在CREATE ASSEMBLY調用中使用,當你建立一個SQL CLR項目比特串中的SQL腳本。
生成項目,然後在bin文件夾解壓使用DacUnpack.exe的「* .dacpac」文件。在解壓縮的文件夾中查找「model.sql」。它包含一個CREATE ASSEMBLY調用看起來像這樣:
CREATE ASSEMBLY [MyFunctions]
AUTHORIZATION [dbo]
FROM 0x4D5A90000[very long string here...];