4

私は必死にこれに対する答えを探していました、そして私は私が明白な何かを逃していると感じます。

コンパイル時に、データファイルでいっぱいのフォルダーをデプロイメントプロジェクトのTARGETDIRにコピーする必要があります。個々のファイルを追加する方法はわかりますが(つまり、ファイルシステムを右クリックして[追加]-> [ファイル]に移動します)、常に追加されるデータファイルでいっぱいのフォルダーがあります。コンパイルするたびに新しいファイルを追加する必要はありません。

PreBuildEventを使用してファイルをコピーしようとしました。

$(ProjectDir).. \ Data*。*$(TargetDir)Data\をコピーします

ビルド時にエラーコード1で失敗します。でも、ここでポイントを逃していると感じずにはいられません。助言がありますか?

前もって感謝します。

グレイム

4

5 に答える 5

2

このルートに行きました。

  • 新しいプロジェクトを作成 (デフォルトのソース ファイル Class1 を削除)
  • プロジェクトに必要なファイル/フォルダーを追加しました。
  • オプションのコンテンツ ファイルを選択して、プロジェクトをインストーラーのプロジェクト出力として追加しました。

これにより、前述のようにファイルを圧縮/解凍する複雑さがなくなります。

于 2012-05-17T04:06:26.943 に答える
0

エラーはおそらく、パスにスペースが含まれており、パスを引用符で囲んでいないためです。

ex copy "$(ProjectDir)..\Data*.*" "$(TargetDir)Data\"

私は同様のことをする必要があります。カスタムアクションを考えています...

于 2011-03-18T19:41:59.763 に答える
0

これに対する別の回避策を見つけました。デプロイ プロジェクトに含めるデータ ディレクトリを指す Web プロジェクトをソリューションに追加しました。Web プロジェクトはデータ ディレクトリ内の新しいファイルを自動的に取得し、展開プロジェクトでプロジェクト コンテンツを参照できます。

于 2011-04-06T09:17:08.297 に答える
0

試す

xcopy $(ProjectDir)..\Data\*.* $(TargetDir)Data /e /c /i [/f] [/r] /y

/e ツリー構造のフルフィルメントを保証します (空のフォルダーをバイパスする場合は /s を使用します)
/c エラーが発生しても続行します (ビルド プロセスを終了させます)
/i 存在しない場合は宛先フォルダーを作成する必要があり
ます以前に存在するファイルの場合は上書き

[オプション]
/f コピーの結果のパス全体を確認し
たい場合 /r 以前にコピーした読み取り専用ファイルを上書きしたい場合

この方法は、ファイルよりもプロジェクトの方が簡単です。その上、ファイルでは、各ビルドで変更された/不足しているファイルのみがコピーされますが、データ パックの変更ごとにプロジェクトを維持する必要があります。データ全体のサイズとデータ パックの変動性によって異なります。

また、データ パックから一部を削除し、ターゲット フォルダーを空にせずに再構築する場合は、残りのファイルにも注意してください。

幸運を。

于 2009-07-24T12:18:43.070 に答える
0

回避策で問題を解決しました:

  • ディレクトリ全体 (フィルタリング可能) を ZIP ファイルにパッケージ化するビルド アクションを追加します。
  • 空の ZIP ファイルへの参照を配置プロジェクトに追加します。
  • カスタム アクションをデプロイ プロジェクトに追加して、ZIP を宛先フォルダーに抽出します。

シンプルで安定しています。

于 2010-04-04T07:55:54.703 に答える