我创建了一个简单的NuGet包,其中包含Tools文件夹中的Init.ps1脚本。该脚本如下所示:
param($installPath, $toolsPath, $package, $project)
$postBuildEvent = $project.Properties.Item("PostBuildEvent").Value
在Visual Studio 2012项目中安装软件包时,我在$ project.Properties.Item上收到错误,因为$ project.Properties为null:“您无法在空值表达式上调用方法”。我检查了$ project.Properties是否为null,它是。
问题是,为什么它为空。我只是尝试改变post build事件(如描述here)。有人有线索吗?
修改 如果代码在Install.ps1中,则可以正常工作。首次安装软件包时似乎无法使用项目属性。
答案 0 :(得分:0)
init.ps1的参数列表是:
param($installPath, $toolsPath, $package)
init.ps1没有$ project参数,因为它在解决方案级别执行,并且不依赖于项目。
有关详细信息,请参阅此处:http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package