2017-08-08 79 views
0

我開發了一個使用C#和SQL Server 2008 R2的Windows應用程序。我的應用程序需要使用一些數據庫算法進行一些優化和速度,所以我創建了一個.dll程序集。使用高級安裝程序添加一個dll程序集到SQL Server

因此大多數存儲過程使用這個程序集來生成它們的T-SQL。

我知道如何將此組件添加到SQL Server這樣的:

第一步:

/* enable CLR in SQL Server */ 
EXEC sp_configure 'clr enabled' , '1' 
go 
reconfigure; 

然後第二步:

/* Add ASSEMBLY to SQL Server */ 
CREATE ASSEMBLY SQLFunction 
FROM 'FolderPath\...\SQLFunction.dll' 

現在我要發佈我的Windows應用程序使用高級安裝程序。挑戰在於將第二步添加到高級安裝程序SQL查詢中,因爲可變路徑爲'FolderPath\...\SQLFunction.dll'

我可以將第一步添加到高級安裝程序SQL查詢中,但是如何使用SQL查詢或其他方式從app directory添加該dll。

請幫忙寫下你的想法,因爲我認爲這是一個共同的挑戰。

非常感謝......

回答

2

所有你應該做的將是在添加文件和文件夾您的DLL從項目視圖,然後在SQL腳本查看使用SQL替換選項卡從腳本替換模式與文件和文件夾視圖中的DLL路徑。這是他們網站上的practical example

+0

我遵循指示,但[APPDIR]沒有得到應用程序安裝文件夾,並在安裝時給我一個錯誤。 –

1

一種方法是直接從dll(內容)以十六進制安裝dll。

CREATE ASSEMBLY SQLFunction 
FROM 0x0x4D5A90000300000004000000FFFF000[and much much hex more - no spaces and no newlines] 
WITH PERMISSION_SET = SAFE 

有很多十六進制編輯器,它允許你下載你的dll文件的十六進制。還有插件記事本++(十六進制編輯器)

要安裝它去插件 - >插件管理器 - >顯示插件管理器 找到十六進制編輯器,檢查它,並點擊安裝。可能的消息說應該更新插件管理器。點擊「否」。然後十六進制編輯器將被安裝並且記事本++應該重新啓動。

之後,打開你的dll文件(用記事本++),您將有新圖標:

hex-editor icon

點擊此圖標,你將不得不在十六進制文件。複製粘貼(並刪除空格),你就可以了。

+0

你的意思是,如果我抓取我的DLL的十六進制代碼,並把它放在0x [這裏]我可以組裝該DLL沒有任何物理路徑? –

+0

是的,這是正確的:) – Piotr

+0

你能指導我如何使用記事本++將我的dll轉換爲十六進制代碼? –

相關問題