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

7
我正在开发一个NuGet包,该包将设置当前项目使用我公司的程序集版本控制标准。目前为止,我已经成功地做到了我想要的一切,除了添加自定义构建步骤之外。历史上,这是通过直接编辑.csproj文件并将一些新标签添加到XML中手动完成的。它实际上成功地添加了它们,但我是通过编辑XML而不是通过EnvDTE对象在install.ps1中的$project参数来完成的。但我会收到一个弹出消息询问我是否要放弃更改。我已经在我的脚本中添加了$project.Save(),就在我进行更改之前,这样可以消除弹出窗口,并且我只需要得到告诉我项目已更改并询问我是否要重新加载它的那个。这比以前好一些,但还不完美。有更好的方法吗?
2个回答

10

你也可以使用由NuGet的首席开发人员David Fowler编写的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


2
未来读者注意:新版本的NuGet会自动通过将.targets文件添加到您包的tools文件夹中来启用此功能。 - Chris Pfohl
1
谢谢。我想在未来,我会以“根据 NuGet 版本 X.Y…”为起点开始。 - Kiliman
是的。他们正在很好地发展这个工具。 - Chris Pfohl
@Crisfole:“enable this”:启用什么? ;) - Torben Koch Pløen
使构建目标集成化。 - Chris Pfohl

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接