2

私のソリューションには 7 つのコード ライブラリ プロジェクトがあり、VSS の同じコード ライブラリ プロジェクトを使用している 3 つの異なるタイプの Web サイトがあります。

ここで、ビルド後のスクリプトを参照コード ライブラリ プロジェクトの 1 つに配置して、ビルドが完了すると、1 つの特定の DLL が Web サイトの bin ディレクトリに配置されるようにします。

たとえば、「references」という名前の参照プロジェクトがあり、そのプロジェクト プロパティに以下のコードを配置して、ソリューション Web サイトの bin ディレクトリを取得します。

xcopy /Y $(ProjectDir)Tridion $(SolutionDir)Com.Emirates.Pss.Ibe.UI\Bin

上記のことは、「Com.Emirates.Pss.Ibe.UI」という名前の私の1つのWebサイトプロジェクトで正常に機能します.1人のユーザーが「参照」プロジェクトにチェックインし、他の開発者が最新の参照プロジェクトを取得すると、問題が発生します」 Com.Emirates.Pss.Ibe.UI」をポスト ビルド スクリプトに追加しますが、そのソリューション Web サイト ディレクトリは「Com.Emirates.Pss.MYBooking.UI」です。

xcopy /Y $(ProjectDir)Tridion $(SolutionDir) Com.Emirates.Pss.Ibe.UI \Bin (太字部分を動的にする方法を教えてください。これにより、チェックインしたユーザーを誰でも変更せずにアプリケーションを簡単にビルドできます。 .

4

3 に答える 3

4

さまざまなビルド後のイベント マクロの一覧を次に示します。

私が正しく理解していれば、 $(ProjectDir)マクロを使用したいと思いますか?

MSBuild を使用している場合の別のオプションとして、VS にユーザー定義マクロ変数を追加し、例に示すように独自のプロパティ シートを作成できます。

<PropertyGroup Label="UserMacros">
      <MyProj>Com.Emirates.Pss.Ibe.UI</MyProj>
</PropertyGroup>

使用法:xcopy /Y $(ProjectDir)Tridion $(SolutionDir)$(MyProj)\Bin

そして最後のオプションの1つは、MAINプロジェクト(前に実行される)の特定のプロジェクトの名前で環境変数を設定し、referencesプロジェクトからそれを参照することです。

例えば

プロジェクト #1 でPre -Build イベントを次のように設定します。 SETX MyProj Com.Emirates.Pss.Ibe.UI

参照プロジェクトで、次を使用してコピーします xcopy /Y $(ProjectDir)Tridion $(SolutionDir)%MyProj%\Bin

SETX と SET の違いは、SETX は (MSBuild を実行する) CMD ウィンドウが閉じた後でも変数を保持することです。ただし、SETX で作成された変数は、このコマンドを使用した後に作成された CMD ウィンドウでのみ動作を開始するため、これを初めて実行するときに Visual Studio を閉じて再度開く必要がある場合があります。

于 2012-10-23T12:17:17.053 に答える
0

PostBuild イベント コマンド ラインで呼び出している .cmd ファイルに引数として $(SolutionDir) を渡すだけです。同様に、PostBuild コマンドで $(ProjectName) またはその他の VS マクロにアクセスできるようにする場合も同様です。

于 2012-10-23T12:13:12.783 に答える
0

「参照」プロジェクト PostBuildEvent に以下のコードを追加して、問題を解決しました。

if $(SolutionName) == IbeUI-Integrated  xcopy /Y $(ProjectDir)Tridion $(SolutionDir)Com.Emirates.Pss.Ibe.UI\Bin
if $(SolutionName) == MybUI-Integrated  xcopy /Y $(ProjectDir)Tridion $(SolutionDir)Com.Emirates.Pss.Myb.UI\Bin
if $(SolutionName) == OlciUI-Integrated  xcopy /Y $(ProjectDir)Tridion $(SolutionDir)Com.Emirates.Pss.Olci.UI\Bin
于 2012-10-31T04:34:40.450 に答える