2012-03-25 51 views
0

我有一個使用SQL Server 2012 LocalDB的ASP MVC 3應用程序。我還沒有被會員數據庫commiting ASPNETDB.MDF到源代碼控制(水銀),所以當我結賬處或者是項目部署到一臺新電腦,我得到以下錯誤:如何處理用於部署/簽出的缺少ASP成員數據庫?

Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'.

我寧願不aspnet_regsql運行在每臺機器上。有沒有辦法可以從Global.asax中的代碼重新創建缺少的成員資格數據庫?否則,將由aspnet_regsql創建的初始數據庫(無論是.mdf還是腳本到.sql)提交到源代碼管理並將其部署到所有機器是安全的?

回答

2

這似乎並不可能從內.NET創建它,所以我結束了剛剛創建的默認成員資格數據庫:

"%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regsql.exe" -E -S (localdb)\v11.0 -d aspnetdb -A mr 

這將創建C:\Users\USERNAMEaspnetdb.mdf。然後,我將其複製到解決方案中的部署文件夾,並將其添加到版本控制。最後一步是向我的Web項目添加一個構建事件,如果數據庫不存在,它將複製數據庫。

if not exist ("$(ProjectDir)App_Data\aspnetdb.mdf") copy "$(SolutionDir)_Deployment\aspnetdb.mdf" "$(ProjectDir)App_Data"