43

我一直在使用Visual Studio 2012 RC與試用許可證沒有問題。我昨天購買了Visual Studio 2012 Professional,安裝了最新版本,並安裝了更新1.EF5遷移更新數據庫腳本錯誤

我有一個解決方案/項目,我一直在努力多年。它有很多遷移。我在這個最新版本中運行了我的第一個add-migration TableX_NewFieldupdate-database -sourcemigration:TableX_PreviousNewField

它們都運行沒有問題。

然後我跑update-database -script -sourcemigration:TableX_PreviousNewField並取得了以下:

PM> update-database -script -sourcemigration:TableX_PreviousNewField 
Applying code-based migrations: [201301151003149_TableX_NewField]. 
Applying code-based migration: 201301151003149_TableX_NewField. 
System.Runtime.InteropServices.COMException (0x8004000C): User canceled out of save dialog (Exception from HRESULT: 0x8004000C (OLE_E_PROMPTSAVECANCELLED)) 
    at EnvDTE.ItemOperations.OpenFile(String FileName, String ViewKind) 
    at System.Data.Entity.Migrations.Utilities.DomainDispatcher.OpenFile(String fileName) 
    at System.Data.Entity.Migrations.Utilities.DomainDispatcher.OpenFile(String fileName) 
    at System.Data.Entity.Migrations.Extensions.ProjectExtensions.NewSqlFile(Project project, String contents) 
    at System.Data.Entity.Migrations.UpdateDatabaseCommand.<>c__DisplayClass2.<.ctor>b__0() 
    at System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command) 
User canceled out of save dialog (Exception from HRESULT: 0x8004000C (OLE_E_PROMPTSAVECANCELLED)) 

我已經跑了Windows更新。使用NuGet檢查更新。重新啓動我的電腦。仍然有錯誤。

+0

除了NuGet之外,還安裝了其他Visual Studio擴展嗎? – bricelam

+0

另外,你有沒有嘗試修復Visual Studio? – bricelam

+0

@Brice是的,列出的擴展名是「Microsoft Developer Tools」,「用於JavaScript的Windows庫的Visual Studio擴展」和「Web Essentials 2012」。 –

回答

66

我注意到在Visual Studio中,轉到SQL菜單,Transact-SQL編輯器,新查詢...給出了一個關於不能與安裝的服務器一起工作的工具的對話框。安裝SQL Server數據工具 - 2012年12月更新(Sql Server Data Tools)修復了問題

+1

這解決了我的一個同事的問題。 – Scott

+0

表示懷疑但爲我工作 - 使用命令「Update-Database -Script -SourceMigration:0」從零開始獲取完整的SQL –

+3

安裝工具後需要重新啓動Visual Studio –

4

此問題已解決。我卸載,然後安裝和問題沒有解決。然後我同時做了兩件事。所以我不知道哪個解決了問題:

  1. 刪除%temp%中的所有文件夾和文件。
  2. Ran devenv/resetsettings。

希望這可以幫助任何遇到類似問題的人。

+0

做了同樣的事情,說跳過刪除需要管理員或正在使用的文件。它的工作。 –