0

私の clickonce アプリには、アプリのルート ディレクトリに含める必要がある .ini ファイル (サード パーティの dll からの構成) があります。ファイルをリンクとして追加し、「コンテンツ」および「新しい場合はコピー」としてマークしました。問題は、更新を展開するたびに、もう一度クリックしてファイルをダウンロードし、すべての変更を上書きすることです。

clickonce が " " を尊重しないのはなぜcopy if newerですか?

4

1 に答える 1

1

clickonce が「新しい場合はコピー」を尊重しないのはなぜですか?

これは、ビン (またはバイナリがコンパイルされる場所) にコピーするときにコンパイラによって使用されるためです。この設定は clickonce とは関係ありません。

INI の名前を「base.ini」または同等のものに変更することをお勧めします。アプリケーションの起動時に、アプリケーションがまだ存在しない場合に限り、新しい名前で新しいファイルにコピーします。このようなもの:

if (!File.Exists("yourinifile.ini"))
{
    File.Copy("base.ini", "yourinifile.ini");
}

編集

ClickOnce マニフェストでファイルをデータ ファイルとしてマークできる場合があります。これをする、

  1. プロジェクトのプロパティを開く
  2. 「公開」タブを選択
  3. [アプリケーション ファイル...] ボタンをクリックします。
  4. ファイルのリストで INI ファイルを見つけ、公開ステータスを「データ ファイル」に変更します。
于 2012-07-16T20:00:14.563 に答える