2

我创建了一个简单的 NuGet 包,其中在 Tools 文件夹中包含一个 Init.ps1 脚本。脚本开始如下:

param($installPath, $toolsPath, $package, $project)

$postBuildEvent = $project.Properties.Item("PostBuildEvent").Value

在 Visual Studio 2012 项目中安装包时,我在 $project.Properties.Item 上收到错误,因为 $project.Properties 为空:“您不能在空值表达式上调用方法”。我检查了 $project.Properties 是否为空,它是。

问题是,为什么它是空的。我只是尝试更改构建后事件(如此所述)。有人有线索吗?

编辑: 如果代码在 Install.ps1 中,它可以工作。首次安装包时,项目属性似乎不可用。

4

1 回答 1

0

init.ps1 的参数列表是:

param($installPath, $toolsPath, $package)

init.ps1 没有 $project 参数,因为它是在解决方案级别执行的,并且不依赖于项目。

有关更多信息,请参见此处:http: //docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package

于 2014-01-28T16:20:31.083 回答