我有项目,其中包含很多类。我将此项目用作我的一个应用程序的插件库。这个应用程序可以从这个项目构建的一个 .dll 加载所有这些插件。
问题是,我需要在第三方应用程序中使用这些插件。此应用程序只能为每个 .dll 加载一个插件。我在这里的选择很少。据我所知,我可以为每个文件创建新项目并构建它们。但如何解决它是草率的方式。
那么,有什么方法可以为每个类或类组构建一个项目?
在我看来,这听起来像是一些脚本的任务。是否可以使用 psake 或 powershell 来实现这一点?
致谢
好吧,我相信他们已经在自己的 bin 目录中这样做了。那是如果您将程序集作为组件的意思。如果您在谈论类,那么您应该将它们放在单独的程序集中并使用相同的方法。
您可以右键单击程序集并转到属性,构建您可以看到“输出路径”字段以及“XML 文档”复选框,这是第三方应用程序在使用 .dll-s 时查看您的 XML 注释所必需的。
我能想到的一种方法是根据您已经拥有的插件项目创建一个“模板”项目文件。您可以制作plugin.csproj的副本,然后删除所有包含的插件类。使用 psake 和 Powershell,您可以动态添加需要程序集的插件类,然后调用 MSBuild 来构建 csproj。
<ItemGroup>
<Compile Include="MyFirstPlugin.cs" />
</ItemGroup>
在 Powershell 中很容易将这样的 xml 节点添加到 csproj 文件中。
ps 脚本的伪代码可能是这样的;
define list of plugin cs-files
for each plugin cs file
copy template.csproj to plugin.csproj
add xml node to include plugin.cs file
call msbuild on plugin.csproj
delete plugin.csproj file