2012-01-03 67 views
11

我們的解決方案中有一個SQL文件,它是嵌入式資源。當sql文件發生變化,並且我們單擊調試時,如果沒有實際的C#代碼發生更改,解決方案不會重新生成帶有嵌入式資源的項目。更改嵌入式資源上的Visual Studio重建

只要我記得,我已經遇到過其他解決方案的問題,而且我個人知道要使用Build Solution來確保構建它......但是這已成爲許多新開發人員的問題當他們對SQL文件的更改沒有在調試時反映出來時,不記得這麼做並且感到困惑...所以我想知道是否有人知道一個簡單的修復。

+0

你在問候嵌入到SQL資源..?也許這可能是問題..你能給出更詳細的解釋..? – MethodMan 2012-01-03 17:07:47

+0

有'SQL文件'就像嵌入資源是一個強制選項?我的意思是,如果它將是一個單獨的文件,那麼就有一個工作周,用'xcopy'在成功構建的文件上覆制該文件,方法是在'Project properties'中定義它。 – Tigran 2012-01-03 17:08:37

+0

嵌入式資源是必要的。它被打包到由安裝程序用來運行遷移腳本的自定義操作程序集中。在應用程序的調試模式中使用相同的程序集,以確保它們所運行的數據庫是最新的。 – Jeff 2012-01-03 18:02:10

回答

3

最簡單的解決方法是「重建」而不是「構建」。其他人將「清理」,然後「建立」100%確定。

嵌入式資源不會在調試DLL中更新,除非輸出DLL被截斷,只能保證在重建和清理時發生。

+1

重建被定義爲清理然後構建;沒有額外的安全措施來進行明確的清理(可能除了確保你按下了正確的按鈕/按鍵組合) – 2012-07-12 10:40:58

0

不幸的是,乾淨和重建似乎並不總是適用於資源文件。我的問題是一個字符串資源文件,我怎麼是固定在VS2016如下:

  1. 關閉的.resx和了.Designer.cs如果他們是在IDE中打開
  2. 刪除了.Designer.cs類(單擊鼠標右鍵,在解決方案資源管理器中刪除)
  3. 雙擊.resx文件在解決方案資源管理器中打開
  4. 如果需要,變「訪問修飾符」從「公」到「無代碼生成」,並保存
  5. 變化「無法生成代碼」中的「訪問修飾符」改爲「公開」,並保存爲.Designer.cs代碼應該更新
0

我遇到了與VS2017相同的問題。

這是對我工作:

  1. 打開.resx文件。請確保你在資源編輯,不要使用XML編輯器,因爲有時會發生變化方面所做的工作將不會觸發Designer.cs
  2. 的生成確保Designer.cs不開放。
  3. 做一個小的變化,保存
  4. 撤消更改,保存