在 install.ps1 nuget 脚本中获取所有项目 "kinds"

Getting all project "kinds" in a install.ps1 nuget script

我正在尝试在安装中编写一些代码。ps1 post- 取决于项目类型的 Nuget 包的安装脚本。如果它是 Web 项目类型,我想在安装后做一些不同的事情。所以我正在查看 $project.Kind 来确定这一点。问题是,当我使用 WebApi 项目进行测试时,这总是 returns 错误的项目类型。如果您查看新创建的 C# WebApi 项目,它的元素中列出了两种项目类型(一种用于 Web 应用程序,一种用于通用 C#)。 $project.Kind 属性 正在返回 C# 标识符...我需要查看它是否是 Web 应用程序,所以我也需要第一个。我找不到从 $project:

获取所有项目类型列表的正确调用
param($installPath, $toolsPath, $package, $project)

if($project.Kind -eq {guid goes here}){do my custom thing here...}

我查看了 EnvDte Project 对象上的可用访问器,但找不到任何看起来有希望的东西。

https://msdn.microsoft.com/en-us/library/envdte.project.aspx

有什么想法吗?

我使用的解决方案正如 Brad 所建议的那样...只是走低调并寻找这样的网络配置:

$webItem = $null;

try{
    $webItem = $project.ProjectItems.Item("Web.config")
}
catch
{
}

if($webItem -eq $null)
{
  --processing for non-web project.
}

不是很优雅,但它似乎适用于我的简单案例。