我正在编写一个支持插件的项目.由于许多插件相对较小(只有一个源文件/类),我希望将它们全部放在visual studio中的一个项目中,但为了成功完成这个,我需要将每个源文件/类编译到其中自己的dll文件,这可能使用visual studio吗?
如果使用visual studio无法做到这一点,是否可以使用其他构建系统,同时仍然使用visual studio进行编码和调试?
目前我已经将插件项目输出类型设置为console,并编写了一个main()方法,该方法将源目录中的所有.cs文件编译为dll并将其复制到正确的目录中.然后我将该控制台应用程序设置为插件项目的后期构建事件.它有效,但它似乎是一个非常丑陋的黑客.
使用visual studio 2010.
Jul*_*rau 37
您可以为每个插件创建一个项目,并将解决方案中的所有项目分组.
如果您不希望每个插件都有一个项目,则可以使用CSC任务使用MSBuild创建自定义构建
编辑项目文件以指定将生成插件库的类:
<ItemGroup>
<Compile Include="Class1.cs">
<Plugin>true</Plugin>
</Compile>
<Compile Include="Class2.cs" />
<Compile Include="Class3.cs">
<Plugin>true</Plugin>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)在项目文件中添加新目标以生成插件库
<Target Name="BuildPlugins">
<CSC Condition="%(Compile.Plugin) == 'true'"
Sources="%(Compile.FullPath)"
TargetType="library"
OutputAssembly="$(OutputPath)%(Compile.FileName).dll"
EmitDebugInformation="true" />
</Target>
Run Code Online (Sandbox Code Playgroud)如果要在每次构建后创建插件库,请添加after build目标:
<Target Name="AfterBuild" DependsOnTargets="BuildPlugins">
</Target>
Run Code Online (Sandbox Code Playgroud)Bru*_*oLM 11
您只需创建一个Solution然后添加所需数量的项目.
您可以拥有5 Class Library个项目并进行编译,生成5个DLL.
| 归档时间: |
|
| 查看次数: |
19702 次 |
| 最近记录: |