web-dev-qa-db-ja.com

VisualStudioでの動的なビルド後のイベント

VisualStudioで複数のプロジェクトを持つビデオサーバーアプリケーションを構築しています。 1つのプロジェクトであるビデオサーバープロジェクトは、ドキュメントを生成するためにシェルスクリプトを呼び出す必要があります。スクリプトは単純であるため、これはビデオサーバープロジェクトをビルドするときに正常に機能します

cd "$(SolutionDir)"
start documentationgenerator

ただし、ビルド時にビデオサーバープロジェクトもビルドするSDKプロジェクトもあります。ただし、これを行うと、SDKプロジェクトのソリューションディレクトリを使用しようとするため、シェルスクリプトがどこにあるかがわかりません。

  • SDKプロジェクト
  • ビデオサーバープロジェクト
    • シェルスクリプト

だから問題は、SDKプロジェクトにビデオサーバープロジェクトを見つけさせるにはどうすればよいですか? MSBuildのプロパティを確認しましたが、「ネストされた」プロジェクトを処理しているように見えるプロパティはありません。

1
SSumner

(コメントに応じて編集)

ソリューション間でプロジェクトを再利用するときに一貫したビルドを取得するための秘訣は、既知の共通のルートを特定し、そこに関連して機能することです。あなたの場所では、共通のルートはビデオサーバープロジェクトのようです。

ビデオプロジェクト(ビルド後のイベント?)で$(SolutionDir)を使用する代わりに、ビデオサーバー$(ProjectDir)で何かを試してみてください。これは、どのソリューションが存在するかに関係なく常に設定されます。このような例から$(SolutionDir)と同じ場所に解決されるはずです-おそらく引用符と先頭/末尾の円記号で遊ぶ必要があります-VSマクロがそれらで何をするのか思い出せません。

cd "$(ProjectDir)..\"
start DocumentationBuilder
2
MarcE