0

2つのフォルダーを含むプロジェクトを作成しました。「src」フォルダーにはコア要素が含まれ、「plugin」フォルダーにはさまざまなプラグインが含まれます(各プラグイン= 1つのファイル)。

ここに例があります:

MyProject
|_src
    |_attributeclass.cs
    |_basepluginparent.cs
    |_otherneededclass.cs
|_plugins
    |_plugin1extendsfrombaseclass.cs
    |_plugin2extendsfrombaseclass.cs
    |_plugin3extendsfrombaseclass.cs
    |_plugin4extendsfrombaseclass.cs

次に、ビルドを開始して、5つのファイルを作成します。1つのbaseplugin.dll(3つのコアクラスすべてを含む)4つのファイルplugin1.dll ... plugin4.dll

したがって、すべてのプラグインはベースクラスを参照しますが、独自のライブラリとしてベースクラスも必要です

これどうやってするの?

4

2 に答える 2

1

MSBuildを使用して処理したくない場合は、次のようなことはできません。

<Csc Sources="_src\*.cs" 
     TargetType="library"
     OutputAssembly="Out\Base.dll" />

base.dllをコンパイルしてから、プラグインのアイテムグループを作成し、それらをバッチでビルドします。

<ItemGroup>
  <Plugin Include="_plugins\*.cs" />
</ItemGroup>

<Message Text="%(Plugin.Identity) => %(Plugin.Filename).dll" />

<Csc Sources="%(Plugin.Identity)"
     References="Out\Base.dll"
     TargetType="library"
     OutputAssembly="Out\%(Plugin.Filename).dll" />

これにより、ソースファイルごとに1つのプラグインdllが取得されます。それぞれがbase.dllにリンクされています。

編集: プロジェクトビルドの一部にするには、上記のすべてを次のようなターゲットにラップします。

<Target Name="BeforeBuild">

</Target>

プロジェクトファイルの最後に配置します(プロジェクトをアンロードしてプロジェクトファイルを編集します)。

于 2012-11-30T08:08:31.397 に答える
1

5つのプロジェクトを作成します。1つはcoreclasses.dllをビルドし、もう1つは各プラグインをビルドします。

于 2012-11-29T20:45:37.687 に答える