2014-03-27 15 views
1

我最近被要求爲Windows Forms應用程序創建一個安裝程序,該應用程序使用實體框架與數據庫進行通信。如果數據庫不存在於最終用戶的計算機上,我修改了我的程序以創建數據庫,所以它應該沒有問題。問題是,我使用InstallShield進行的Visual Studio 2012,並建立我的安裝後,安裝目錄中只產生2個文件:VS2012:我的實體框架模型沒有包含在使用InstallShield的項目輸出中

MyProgram.exe & MyProgram.exe.config

問題是,我相信一個EntityFramework.dll文件也應該包含在程序的工作中,但顯然,Visual Studio不想包含它。我嘗試了一切。我點擊了EF模型的屬性,並選擇了「複製到輸出」或「如果新的複製」,並且沒有任何內容。我也試圖改變我的.edmx文件的屬性,我切換生成行動:沒有生成行動:編譯...但之後,我的整個程序甚至不會建立!它扔了以下錯誤:

A namespace cannot directly contain members such as fields or methods 

及後雙擊錯誤以檢查它發生了,它開在代碼中EDMX文件,顯然是想讓我在它的開始添加命名空間......但是這整個事情看起來像XML ...所以它爲什麼要求我一個名稱空間?

我想要做的就是將我的實體框架模型添加到我的主輸出,但沒有任何效果。或者它至少不會出現在installshield中。我知道我可以在我的項目/ bin中的調試或發佈文件夾中手動添加「EntityFramework.dll」文件,但那樣做感覺不對。我應該這麼做,還是有理由不將我的實體模型添加到我的項目輸出中?或者爲什麼當我嘗試從無 - >編譯切換編譯選項時,我的EDMX文件拋出命名空間錯誤?

請幫助傢伙......我知道這是一個愚蠢的錯誤,但我想要的是,我的實體模型需要在另一臺PC上工作的文件被複制(據我所知,我需要的是EntityFramework .dll,也許EntityFramework.xml)。幫幫我?

回答

0

All I want to do is add my Entity Framework Model to my Primary Output, but nothing works. Or it doesn't appear in installshield at least. I know I can manually add "EntityFramework.dll" the file from the debug or release folder in my project/bin, but that just doesn't feel right

在你的InstallShield項目(當然是在同一個解決方案爲您的項目),你的確應該看到該項目的primary.output這取決於。如果沒有,右鍵單擊IS項目 - >項目依賴項 - >並手動檢查。

從te IS項目樹中,可以在「2)指定您的應用程序數據」 - >「文件」中,其中zou可以指定安裝目錄的物理組織和內容。

關於.primary.output - >右鍵單擊 - >從構建掃描的依賴項 - >您應該看到所有自動檢測到的依賴項的列表,啓用/禁用您想要的內容......它對我來說這樣工作。請注意,之前需要構建。

如果dll不在列表中,您也可以將它放在左側的安裝目錄樹中,並且文件也將被嵌入。