8

私のソリューションには 2 つのプロジェクトがあります。1 つは私の実際のプロジェクトで、もう 1 つはセットアップ プロジェクトです。

私の実際のプロジェクトには、すべての ssrs レポートを保存するレポート フォルダーが 1 つあります。セットアップ プロジェクトに「SSRS_Repor」というフォルダーが 1 つあります。ここで、バッチ ビルドを実行してプロジェクトの再生成をセットアップするときに、実際のプロジェクトのレポート フォルダーからすべてのファイルをセットアップ プロジェクトの SSRS_Repor にコピーしたいと考えています。

セットアップ プロジェクトのある場所から別のフォルダーにファイルをコピーするこの種の自動化を行うことができれば、rdls ファイルを手動でコピーする必要がなくなります。これは、セットアップ/展開プロジェクトによって可能であると聞きました。詳細な手順について Google で検索しましたが、適切なリンクが見つかりませんでした。どうすればそれができるか教えてください。

私はそれを別のフォーラムにも投稿しました。

Open or create a setup/deployment project in Visual Studio 2005
Press F4 to display the Properties window
Click on the name of your setup/deployment project in the Solution Explorer
Click on the PostBuildEvent item in the Properties window to cause a button labeled "..." to appear
Click on the "..." button to display the Post-build Event Command Line dialog
Add a command line of your choice in the Post-build event command line text box
Build your project in Visual Studio and verify that the post-build event is executed after the main MSI build

それで問題ありませんが、ある場所から別の場所にファイルをコピーするには何を書く必要がありますか? それは私には明らかではありません。ですから、これは、セットアップ生成中にファイルをコピーするために何を書くかが私にとって最も重要です。

以下のような別の手がかりを得ました。Pre/Post Build Event をセットアップするためのスクリプトですが、適切に認識されていません。のようなサンプルを入手しました。

copy /Y "$(TargetDir)$(ProjectName).dll" "$(SolutionDir)lib\$(ProjectName).dll"

上記のステートメントまたは行は、私には明確ではありません。私の場合は何を書く必要がありますか?ステップバイステップガイドが必要です。

これが私のプロジェクト構造のスクリーンショットです

ここに画像の説明を入力してください

4

1 に答える 1

11

あなたの質問に簡単に答えるには:

ビルド イベント (事前または事後) に入力するコマンドは、コマンド ライン ボックスに入力するコマンドと同じです。

あなたの例では:

copy /Y "$(TargetDir)$(ProjectName).dll" "$(SolutionDir)lib\$(ProjectName).dll"

copyは実際の DOS コピー コマンドです。

/Yは、確認プロンプトを表示しない通常のスイッチです。

「$(TargetDir)$(ProjectName).dll」は、コピーするソース ファイルです。

「$(SolutionDir)lib\$(ProjectName).dll」がファイルのコピー先です。

バッチ ファイル コマンドの追加情報については、こちらを参照してください:バッチ コマンド リスト

$({Identifier})は、Visual Studio ビルド前/ビルド後のイベント デザイナーで使用できるマクロです。

マクロの詳細については、MSDN オンライン ヘルプを参照してください: MSDN マクロ リスト

あなたに提供された行は、あなたが望むことをしません。通常、他のプロジェクトまたはソリューションで使用されるライブラリ フォルダーに DLL ファイルをコピーするために使用されます。

新しいビルド イベントを作成するために見つけた解決策は正しいです。

あとは、実際にファイルをコピーするコマンドを書き留めるだけです。

次のようになります。

XCOPY "$(SolutionDir)TestProject\Reports\*.*" "$(SolutionDir)TestSetup1\SSRS_Repor" /Q /E /I

/Q : 静か | コピー中のファイルを表示しない

/E : 再帰的 (サブフォルダー構造とファイルをコピー)

/I : 宛先がまだ存在しない場合はフォルダーであると見なします (必要に応じて新しいフォルダーを作成します)。

于 2012-10-17T19:02:42.833 に答える