2017-08-10 5 views
0

私はWindows 7 Ultimate x64でVS2010を使用しています。 複数のプロジェクトを1つのソリューションで自動的に構築したいと考えています。VisualStudio - Q:ソリューションで複数のプロジェクトをビルドする前にプロセスを実行する方法

例: 解決策StormSolutionには4件のプロジェクトが含まれています。

1:Storm_Module1(出力ファイルの拡張子:DLL)

2:Storm_Module2(出力ファイルの拡張子:DLL)

3:CombineModule12(出力ファイル拡張子:DAT)

4: ConvertModule2CFGFile(出力ファイル拡張子:CFG)

ステップ1,2Storm_Module1Storm_Module2の結果はStandard Windows DLLです。

ステップ3CombineModule12の結果はcmd.exe /c copy /b storm_module1.dll + storm_module2.dll combined.datコマンドのように、"combined.dat"ファイルを作成するStorm_Module2.dllStorm_Module1.dllオープンしています。

ステップ3-1:次に、encryption_toolencrypted_combined.datファイルにcombined.datファイルを作ります。

ステップ4: "encrypted_combined.dat"ファイルを開き、指定したcfgファイルにします。

手順4で問題が発生します。私は自動的にソリューションストームを構築することはできません。 私はencryption_tool"encrypted_combined.dat" へStep3"combined.dat"結果を作るためにきたので。

したがって、何もせずにStormソリューションを構築すると、ConvertModule2CFGFileプロジェクトは最新の更新encrypted_combined.datを開くことができません。

先に暗号化ツールを実行するには、ステップ4を実行します。

パラメータを使用して暗号化ツールを実行できます。例えば、cmd.exe /c "encryption tool.exe -mode_crypt combined.dat -output encrypted_combined.dat

プロジェクトをビルドする前にプロセスを実行することはできませんか?

+0

lib.exeユーティリティを使用して、対応する* .dllファイルの* .libファイルを作成するためにdefファイルを使用します。 dllモジュールは、コンパイル時には必要ないため、ソリューション内に保持する必要はありません。共有モードのプロジェクトリンカー設定を保持する。 – ark1974

答えて

1

をVisual Studioでバッチファイルを実行することができPost-Build Eventsを作成することができます。これを使用して2つのDLLを結合します。

プロジェクトを正しい順序で構築するには、ソリューション/プロジェクトでBuild Dependencies and Build Orderを調整します。

+0

ありがとうございます。 "Calc.exe"と入力しても正常に動作しますが、自分のプロセスをどのように実行できますか? 「D:\ Tools \ CryptionTool.exe Combined.dll」と入力したときは動作しません。エラーMSB3027が発生しました。 –

+0

絶対パスを使用してCombined.dllを指定してみてください - ポータブルな方法は$(SolutionDir)または$(ProjectDir)/bla/Combined.dllを使用することです – Freakyy

0

Visual Studioのコマンドプロンプト用のバッチファイルを作成することを検討してください。まず、ソリューション1 &を作成して、好きなファイルに対して操作を実行し、簡単に暗号化ツールを呼び出して、 。

このスレッドは作業を開始する必要があります

How to create a Batch File for Visual Studio Command Prompt

関連する問題