少し前に、データベースの接続文字列に問題がありました。この回答に従って解決しました: https://stackoverflow.com/a/7692708/1616222 (ありがとう)
デバッグ中はすべて正常に動作していますが、アプリケーションをデプロイしてインストールすると、次のようになります。
fi.SetValue(settings, false);
「非静的フィールドにはターゲットが必要です」という例外がスローされます。
.NET Famework 3.5 を使用していますが、変更することはできません。