使用 nuget 包转换 .csproj
Transforming .csproj using nuget package
我知道可以使用自定义 Nuget 包转换源代码文件和配置文件。不幸的是,我无法在任何地方找到如何附加或更改 .csproj 文件。这可能吗?
NuGet 直接支持而无需借助 PowerShell 的唯一文件修改是:
- web.config 和 app.config transforms.
您可以将 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.
修改代码文件
我知道可以使用自定义 Nuget 包转换源代码文件和配置文件。不幸的是,我无法在任何地方找到如何附加或更改 .csproj 文件。这可能吗?
NuGet 直接支持而无需借助 PowerShell 的唯一文件修改是:
- web.config 和 app.config transforms.
您可以将 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.
修改代码文件