Visual Studioで出力タイプとしてConsole Application
を持つC#プロジェクトがあります。コンソールとDLLと同じプロジェクトを作成
しかし、私はまた別の解決策のためにこれらのプロジェクトのClass Library
が必要です。
今は出力タイプを毎回切り替える必要がありますが、exe
とdll
を同じbuild-event
に生成することは可能でしょうか?
これにはpost-build-event
がありますか?
Visual Studioで出力タイプとしてConsole Application
を持つC#プロジェクトがあります。コンソールとDLLと同じプロジェクトを作成
しかし、私はまた別の解決策のためにこれらのプロジェクトのClass Library
が必要です。
今は出力タイプを毎回切り替える必要がありますが、exe
とdll
を同じbuild-event
に生成することは可能でしょうか?
これにはpost-build-event
がありますか?
私の知る限り、コンパイル後に出力タイプを変更する可能性はありません。つまり、の2つのプロジェクトが同じソースコードファイルを使用しますが、出力タイプが異なるソリューションのライブラリライブラリにある場合は可能です。そうすれば、コードの重複を避けることができます。
コーダーとドルクが正しいです。あなたのソリューションでは、クラスライブラリプロジェクトを追加し、ほぼすべてをそこに配置します。コンソールプロジェクトはdllを呼び出します。 –
私は同じことをするでしょう...私には正解です。 – Rahul
共通のコードをコンソールアプリケーションから共通のDLLに持ち出すためのリファクタリング –
コンソールアプリケーションは、プロジェクトの種類です。それを変更することはできません。
可能なことは、あなたのロジックをクラスライブラリプロジェクトに持ち込み、必要なあらゆるタイプのプロジェクトからクラスライブラリを使用することです。
.net exeアセンブリは、通常、クラスライブラリと同じように参照できます。
これで、exeファイルを作成し、他のプロジェクトでexe(奇妙なことは聞こえるが動作する)を参照するだけでいいです。
これは参照を参照するためのダイアログです。表示されるように、exeファイルを選択することができます。
しかし、コメントされているように、それは本当にあなたのusecaseが何であるかによって異なります。 私は、顧客がexeを発見しないことを希望するエントリポイントを持つexeを出荷することはお勧めしません。しかし、それについては、エントリーポイントを条件付きでコンパイルすることができます。例えば
class Program {
// This is the entry point of the EXE
public static void Main() {
#if DEBUG
// Start Debug Application
...
#else
// Shipped to client - Entry point disabled
return;
#endif
}
}
出荷exeファイルと出荷クラスライブラリを持って、関連する理由がある場合、私はこのようなソリューションをリファクタリングします:
。
dllになるようにプロジェクトをコンパイルし、このdllをコンソールアプリケーションで使用する必要があります。
可能なことは、プロジェクトのビルド後のイベントでmsbuildを手動で実行することです。
人々はそれは不可能だと思うが、それは実際に、なぜ私は本当にわかりません。
最も簡単な方法は、exe
をdll
に改名することです。しかし、それは多くの場合に機能します。また、 "Peter I"は、.NET exeを他のプロジェクトのアセンブリとしてインポートできると述べています。とにかく実際にはdllが必要ないかもしれません。ここに述べたように別の方法がC# command line
を使用することでしょう
あなたはこのための通常の解決策は、2つのプロジェクトとソリューションを使用しているイベントPre-build Event/Post-build Event Command Line Dialog Box
を構築プリ/ポストコマンドのコマンドラインオプションを使用することができます。
Main
はちょうどいくつかの機能を呼びます。詳細については、MSDN page on Solutionsを参照してください。
Codorは手動でファイルをConsoleプロジェクトに追加することを推奨しますが、どちらのバージョンでもビルド設定が共有されないという欠点があります。
_Compiler Options_を探すチャンスが見つかりましたか? – uTeisT