我正在编写一个带有插件支持的项目。
由于许多插件相对较小(只有一个源文件/类),我希望将它们全部放在 Visual Studio 中的一个项目中,但要成功做到这一点,我需要将每个源文件/类编译到其自己的dll文件,使用Visual Studio可以吗?
如果 Visual Studio 无法做到这一点,是否可以使用另一个构建系统,同时仍然使用 Visual Studio 进行编码和调试?
目前,我已将插件项目输出类型设置为控制台,并编写了一个 main() 方法,该方法将源目录中的所有 .cs 文件编译为 dll 并将它们复制到正确的目录。然后我将该控制台应用程序设置为插件项目的构建后事件。它有效,但看起来是一个非常丑陋的黑客。
使用视觉工作室2010。
您可以为每个插件创建一个项目,并将所有项目分组到一个解决方案中。
如果您不想每个插件都有一个项目,您可以使用 MSBuild 创建自定义构建CSC task
如何为每个插件文件生成一个dll
-
在项目中添加所有插件文件
-
编辑项目文件以指定哪个类将生成插件库:
<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>
-
在项目文件中添加新目标以生成插件库
<Target Name="BuildPlugins">
<CSC Condition="%(Compile.Plugin) == 'true'"
Sources="%(Compile.FullPath)"
TargetType="library"
OutputAssembly="$(OutputPath)%(Compile.FileName).dll"
EmitDebugInformation="true" />
</Target>
-
如果您想在每次构建后创建插件库,请添加一个构建后目标:
<Target Name="AfterBuild" DependsOnTargets="BuildPlugins">
</Target>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)