2012-01-03 23 views
11

私たちのソリューションに埋め込まれたリソースであるSQLファイルがあります。実際のC#コードが変更されていない場合、SQLファイルが変更され、デバッグをクリックすると、ソリューションは埋め込みリソースでプロジェクトを再構築しません。埋め込みリソースのVisual Studio再ビルドを変更しました

私は覚えている限り、他のソリューションでもこの問題を抱えていましたが、ビルドソリューションを構築するために個人的に知っていますが、これは多くの新しい開発者にとってSQLファイルの変更がデバッグ時に反映されていないときにこれを覚えて混乱することはできません...だから、誰かが簡単に修正できるかどうかは分かりませんでした。

+0

を保存し、変更を元に戻しますか..?おそらくこれは問題かもしれません..あなたはもっと詳しい説明を与えることができます..? – MethodMan

+0

は埋め込まれたリソースのような 'SQLファイル'を持っていますか?つまり、別のファイルであれば、 'xcopy'を使って成功したビルドでそのファイルを' Project properties'内で定義することで、そのファイルをコピーすることができます。 – Tigran

+0

埋め込みリソースが必要です。これは、移行スクリプトを実行するためにインストーラによって使用されるカスタムアクションアセンブリにパッケージ化されています。アプリケーションのデバッグモードで同じアセンブリが使用されて、実行中のDBが最新であることが確認されます。 – Jeff

答えて

3

最も簡単な修正は、「ビルド」ではなく「再構築」することです。他の人が "きれいにして"、そして "ビルド"して100%確実になるでしょう。

埋め込みリソースは、出力DLLが切り捨てられない限り、デバッグDLLで更新されません。このDLLは、再ビルドおよびクリーンアップでのみ発生することが保証されています。

+1

リビルドは、クリーンアップしてビルドするように定義されています。明示的なクリーンアップを行う際に余分な安全性はありません(おそらく、あなたが右のボタン/キーコンボを押したことを確認する以外に) –

0

残念ながら、クリーンでリビルドは、リソースファイルでは常に機能しないようです。私の問題は、文字列リソースファイルを使用していた、と私はVS2016で、次のようにした固定方法:

  1. 閉じるの.resxと.Designer.cs彼らは(IDE
  2. 削除.Designer.csクラスで開いている場合
  3. )ソリューションエクスプローラで、削除をクリックし、右ダブルクリックして「いいえコード生成」に「公開」から必要な、変化する「アクセス修飾子」の場合
  4. を開き、
  5. 変更を保存するにはソリューションエクスプローラでファイルの.resx 'コード生成なし'から 'パブリック'に 'アクセス修飾子'を入力し、 => .Designer.csコードを保存してください更新する必要があります
0

VS2017で同じ問題が発生しました。

これは私のために働いていたものです:

  1. はの.resxファイルを開きます。あなたは、リソースエディタにあり、時々行われた変更以来、確かDesigner.csを作るDesigner.cs
  2. の生成がトリガされませんXMLエディタを使用していないことを確認開いていないことを確認します。
  3. 、小さな変更を行います
  4. を保存あなたはSQLリソースに関しては何を埋め込む
関連する問題