我正在尝试使用依赖于项目类型的Nuget包的install.ps1安装后脚本编写代码。如果它是一个Web项目类型,我想在安装后做一些不同的事情。所以我正在看$ project.Kind来确定这一点。问题是,当我使用WebApi项目进行测试时,这总是会返回错误的项目类型。如果查看新创建的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
有什么想法吗?
答案 0 :(得分:1)
我使用的解决方案就像布拉德建议的那样......只是走低路,寻找像这样的网络配置:
$webItem = $null;
try{
$webItem = $project.ProjectItems.Item("Web.config")
}
catch
{
}
if($webItem -eq $null)
{
--processing for non-web project.
}
不是很优雅,但它似乎适用于我的简单案例。