2009-05-08 13 views
1

私はそれらの両方のDLL、私の溶液中で2つのC#プロジェクトを持っている:MSBuild:アセンブリ名と異なる出力ファイル名を上書きする方法は?

  • MyApp.UI.WPF.csproj
  • MyApp.UI.WinForms.csproj

マイセットアッププロセスを保証していますそのうちの1つだけがいつでもインストールされます。どのようなものであっても、ユーザーがアプリケーションを実行するときに、MyApp.exeブートストラップによってピックアップされます。

両方のDLLが同じエントリポイントを含んでいるので、私は一般的なブートストラップ維持したいと思います:

class Bootstrapper 
{ 
    static void Main() 
    { 
     var asm = Assembly.Load("MyApp.UI"); 

     // Execute the UI entry point here. 
    } 
} 

これは私がプロジェクトオプションの両方のDLLを同じアセンブリ名を与えなければならないことを:「MyApp.UI "問題は、MSBuildがアセンブリ名を出力名として使用して、私に矛盾が生じることです。

MSBuildに、代わりに別のファイル名を使用するように説得することはできますか?プロジェクト名?

答えて

2

ビルドに<PostBuildEvent>を追加して、出力アセンブリの名前を共通名に変更できます。

+0

これは私がやったことです。すでに存在する場合は、ターゲットファイルを削除するビルド前のイベントも追加しました。これがなければ名前の変更が失敗することがあります。 – aoven

1

これはCoreCompileタスクの機能です。これを上書きしてcscの/ outスイッチを変更する必要があります。これはお勧めの練習ではありませんが、あなたの目標を達成するでしょう。

関連する問題