使用nuget包添加自定义构建步骤

时间:2011-06-29 13:52:16

标签: nuget envdte

我正在开发一个nuget包,它将设置当前项目以使用我公司的程序集版本标准。除了添加自定义构建步骤之外,我已经做到了我想做的一切(到目前为止)。

历史上,这是通过直接编辑.csproj文件并在xml中添加几个新标记来手动完成的。这些是......

  • 物业组
  • :定位

它实际上已成功添加它们,但我通过编辑xml而不是通过 install.ps1 $ project 参数中的EnvDTE对象来完成它。但是我收到一条消息,询问我是否要放弃我的更改。

在我进行更改之前,我已经在我的脚本中添加了$project.Save()并且摆脱了弹出窗口,我只是告诉我项目已经更改并询问我是否要重新加载它。哪个更好,但仍然不太完美。

有更好的方法吗?

2 个答案:

答案 0 :(得分:9)

您还可以使用由David Fowler(NuGet首席开发人员)编写的NuGetPowerTools包。

Install-Package NuGetPowerTools

将其作为依赖项添加到您的包中,然后在install.ps1脚本中,您可以调用:

Add-Import "\Path\To\Import.targets" $project.ProjectName
Set-MSBuildProperty "MyPropertyName" "MyPropertyValue" $project.ProjectName

$value = Get-MSBuildProperty "MyPropertyName" $project.ProjectName

查看https://github.com/davidfowl/NuGetPowerTools处的代码了解详情。

答案 1 :(得分:3)

Scott Hanselman在mix11做到了这一点。他的技术是卸载项目(使用DTE),使用PowerShell修改它,然后重新加载它(再次使用DTE)。

http://channel9.msdn.com/Events/MIX/MIX11/FRM09