我正在编写一个MSBuild任务来将SVG图像转换为XAML图形(这将帮助我按原样在我的项目中使用SVG图像,而无需在运行时处理SVG)。有一个SharpVectors库,完全符合我的需求,并且我使用它来执行实际的转换。该库以NuGet Package的形式提供。
后来,我计划将我的Task打包到单独的NuGet包中,以便在多个项目中使用它。我面临的问题是,我不知道如何利用包依赖机制来实现"仅开发"包。事实上,我不知道如何使用内部的MSBuild任务进行组装,以便能够解析位于依赖项中的引用程序集(在我的案例中为SharpVectors)。
在通常的构建过程中,此问题不存在,因为依赖项中的所有程序集都只是复制到输出文件夹。但是在开发程序集或工具的情况下,这种策略似乎是不正确的,因为这将使用运行时不需要的程序集污染输出文件夹,但仅限于构建时。
我找到的唯一解决方案是使用我的MSBuild任务在包中包含所有必需的程序集,但它有明显的缺点,例如大的包大小。