使用 nuget 包转换 .csproj

Transforming .csproj using nuget package

我知道可以使用自定义 Nuget 包转换源代码文件和配置文件。不幸的是,我无法在任何地方找到如何附加或更改 .csproj 文件。这可能吗?

NuGet 直接支持而无需借助 PowerShell 的唯一文件修改是:

您可以将 NuGet 包中的文件添加到项目中,但它们会覆盖现有文件。添加的文件如果是.pp文件也可以转换

请注意,NuGet 3 中不再使用 PowerShell 脚本,因此您可能想看看是否可以不使用 PowerShell。其他替代方案是自定义 MSBuild .props 和 .targets 文件,您可以将其包含在 NuGet 包中,这些文件可用于间接修改项目文件。您基本上可以在自己的自定义 MSBuild .targets 文件中向现有项目添加任何您想要的内容,因为它已导入到项目中。

PowerShell 脚本可用于附加或更改 .csproj。有一些示例 NuGet 包可以执行此操作,例如较旧的 Bcl Build NuGet package 将导入元素添加到项目中。请注意,在最新的 NuGet 中直接支持添加导入。

使用 PowerShell 转换现有代码文件比较困难,但您可以使用 Visual Studio object model.

修改代码文件