2011-11-17 51 views
2

我有一個VS2010數據庫項目指向SQL2005數據庫。當我部署它時,它正確地從SQL實例中提取DefaultDataPath並且一切正常。VS2010中的DefaultDataPath爲空SQL2008數據庫部署腳本

今天,我將項目類型從SQL205更改爲SQL2008,並將部署屬性更改爲指向我的SQL2008服務器。但是,現在當我嘗試部署,我得到這個錯誤:

Error SQL01268: .Net SqlClient Data Provider: Msg 5105, Level 16, State 2, Line 1 A file activation error occurred. The physical file name '\AutoDeployedTRS.mdf' may be incorrect. Diagnose and correct additional errors, and retry the operation. 

Error SQL01268: .Net SqlClient Data Provider: Msg 1802, Level 16, State 1, Line 1 CREATE DATABASE failed. Some file names listed could not be created. Check related errors. 

An error occurred while the batch was being executed. 

這樣做的原因錯誤是由VS創建的SQL腳本包含以下三行:

:setvar DatabaseName "AutoDeployedTRS" 
:setvar DefaultDataPath "\" 
:setvar DefaultLogPath "\" 

如果我檢查SQL實例屬性(通過用戶界面或通過閱讀註冊表),它們設置正確,所以它似乎像VS2010無法接受它們出於某種原因。

任何想法?

回答

2

嘗試去位置架構對象\數據庫級別對象\存儲\文件。
可以找到兩個文件:
打開文件[your_database_name] .sql並使參數 FILENAME = '$(DefaultDataPath)$(DatabaseName).mdf'
然後打開文件[your_database_name] _log.sql並設置參數 FILENAME = '$(DefaultDataPath)$(DatabaseName)_log.ldf'
之後嘗試部署您的項目。現在,這些參數是根據當前目標數據庫路徑在部署期間定義的。希望它能幫助你。

+0

由於某種原因,此DB項目沒有「數據庫級別對象」文件夾。它在Schema Objects下,具有函數,安全性,存儲過程,表和視圖。 – Mark

+2

這是盛大的和所有的,但對於定期從模式比較中獲得同步的數據庫項目,這不是一個可接受的解決方案。 – Levitikon