2

こんにちはすべて私はいくつかのクラスを持つクラスライブラリプロジェクトを持っています。

各クラスを異なるDLLにコンパイルする方法を知りたいです。

dllごとに個別のプロジェクトを作成したくありません。

このdllをプラグインとして使用していますが、これらは非常に単純なプラグインであり、プラグインごとにプロジェクトを作成したくありません。

これらすべてのdllを同じディレクトリに配置し、動的にロードします。

ありがとうございました

4

5 に答える 5

2

クラスごとに個別の.csファイルを作成します。

CD次に、Visual Studioコマンドプロンプトを開いて.csファイルの場所 にNygma7の回答で提案されたように、DLLを作成し、プロンプトでDLLを作成しますcsc /target:library /out:test1.dll test1.cs

于 2014-01-28T19:41:03.837 に答える
1

クラスごとに個別のプロジェクトを作成します。

于 2012-04-24T16:12:22.473 に答える
1

これは先に進むのに良い方法ではないと思いますが、とにかく。プロジェクトからクラスを除外してからコンパイルできます。

コンパイラ指令は次のように使用することもできます。

#define Class1
#if Class1
class 1
{
}
#endif

#undef Class2
#if Class2
class 2
{
}
#endif

次に、出力DLL内にClass1またはClass2のいずれかがコンパイルされます。しかし、これはあなたが望むほど自動化されません。他の方法を理解することはできません。

于 2012-04-24T16:20:49.450 に答える
0

あなたは立ち止まって、あなたが何を求めているのかを考える必要があります。すべてが単一のプロジェクトの一部であるいくつかのクラスがありますが、そのプロジェクトをいくつかの異なる部分に構築する必要があります。なぜあなたはそれをしたいのですか?コードについては、次の2つのうちの1つが当てはまります。

  1. あなたのクラスはお互いに依存しています。つまりClass1、に依存しClass2ます。この場合、それらのdllはそれ自体では機能しないため、それらを別々のdllに構築することは望ましくありません。
  2. あなたのクラスは互いに独立しています。つまりClass1、とは関係ありませんClass2。この場合、なぜ同じプロジェクトに参加しているのでしょうか。これらのクラスは独自のプロジェクトに属しているため、個別に構築できます。

あなたのアップデートを読んだ後、私はあなたがケース#2にいるのではないかと思います。クラスが相互に依存しない限り、クラスを独自のプロジェクトに分割する必要があります。あなたは「私はそれらを分離したくない」と言ったが、あなたはその理由を言っていない。それらを分離したくない理由がありますか?それらをすべて同じソリューションの一部にすることができ、1つのコマンドですべてを構築することもできます。

于 2012-04-24T16:28:26.317 に答える
0

2つのソリューション:1ソリューションで新しいプロジェクトを作成するクラスを分離し、dllを生成するクラスライブラリを作成します。参照に移動して、プロジェクトに新しい参照を追加する必要があります。

これが良い解決策であるかどうかを考える必要があります。他のプロジェクトでそのクラスを使用する場合は、それが良い解決策です。

コードの2つの例...

using System;
namespace SimpleMaths
{
  public class Operations
  {
    public static int add(int a, int b)
    {
        return a + b;
    }

    public static int substract(int a, int b)
    {
        return a - b;
    }

    public static int multiply(int a, int b)
    {
        return a * b;
    }
  }
}

次に、[スタート] >> [VisualStudio2005 / 2008] >>[VisualStudioツール]>>[VisualStudioコマンドプロンプト]を開きます。

コマンドプロンプトで、作成した.csファイルを保存したディレクトリを見つけます。CDコマンドを使用します。

csc / target:library /out:File.dll test.cs

これにより、必要なdllファイルが生成されます

于 2012-04-24T17:43:40.450 に答える