9

現在、プロジェクトでビルド後のイベントを使用して、デバッグ目的でアセンブリを別のディレクトリにコピーしています。これは私のマシンにローカルであり、デバッグのみを目的としているため、* .csprojファイルではなく * .csproj.userファイルに含めることをお勧めします。責任のある要素を * .csprojから * .csproj.userにコピーしようとしましたが、うまくいきませんでした。

編集明確にするために、ビルド後のイベントにユーザー固有のコマンドを* .csprojファイル に入れたくありません。代わりに、ビルド後のイベント コマンドを * .csproj.userファイルに入れたいと考えています。(これまでの回答からすると、これは不可能に見えます)

より多くのコンテキストを提供するために、これはプロジェクトの参照ではありません。実行時にアセンブリをロードするアプリケーションのディレクトリにアセンブリをコピーしています。(プラグインを考えてください)

4

4 に答える 4

7

短い答えはノーです。あなたがやりたい方法ではありません:|

少し長い答えはちょっとです。理論的には、個々のユーザーに対して特定のビルド イベントをトリガーすることができますが、これらはまだ csproj ファイルにあります。ビルドで外部イベントを実行し、実行しているユーザーに応じてこれらの外部イベントを (スクリプトとして) 実行できるようにします。

これがデバッグ専用の場合は、それらを挿入し、ビルド作業を行い、バージョン管理システムにアップロードする前にそれらを引き出します。

于 2012-07-27T15:11:20.253 に答える
4

if ステートメントと環境変数を使用します (必要に応じて二重引用符で囲みます)。

if "$(Username)" == "MyUser"
  copy /y $(ProjectDir)memcached.$(ConfigurationName).config $(ProjectDir)memcached.config
于 2012-07-27T15:11:20.870 に答える
2

環境変数によってトリガーされる条件を持つカスタム ビルドターゲットを利用できます。次に、マシンでその変数のみを設定します。

于 2012-07-27T15:09:25.270 に答える
0

ビルド前/ビルド後のイベントはプロジェクト ファイルに保持されます。VS にはオプションがありません。

カスタム (外部) ツールを導入して、このようなコピーを実行し、それをメニューから呼び出すか、マクロから呼び出すこともできます。

于 2012-07-27T15:08:50.047 に答える