powershell - 如何使用nuget更改项目类型和启动对象

标签 powershell nuget console-application csproj

我有一个软件包,安装后会设置一个项目来使用Nunit gui。它安装了Test Runner类(应将其视为启动对象)和所有需要的引用。

我唯一可以从此处修复的部分是,我希望nuget在安装后将项目类型切换为控制台,并将TestRunner类设置为启动对象。

我听说过一些有关如何使用Powershell来执行此操作的事情,但似乎很复杂。特别是当它意味着手动编辑csproj文件时。

关于如何实现此目标的任何想法吗?

最佳答案

您无需手动编辑csproj文件。在install.ps1脚本的顶部,添加以下行:

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

Nuget将使用添加了nuget的项目的Visual Studio EnvDTE.Project对象填充$project变量。然后,您可以操纵Project实例来更改设置。

例如,下面是将项目类型更改为“控制台应用程序”的方法:
$project.Properties.Item("OutputType").Value = 0

(0 = Windows应用程序,1 =控制台应用程序,2 =类库)

您可以使用以下命令设置StartupObject:
$project.Properties.Item("StartupObject").Value = "ConsoleApplication1.Program"

您将必须查看文档以了解任何其他详细信息。不幸的是,文档确实很少:

http://msdn.microsoft.com/en-us/library/EnvDTE.Project(v=vs.110).aspx

您可以使用Package Manager Console中的设置进行播放。首先从“默认项目:”下拉列表中选择要使用的项目。然后,在控制台中运行:
$project = Get-Project

然后,您可以从那里检查和操作项目对象。

关于powershell - 如何使用nuget更改项目类型和启动对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26892754/

相关文章:

c# - PetaPoco vs NPoco

c++ cin.getline() 失败

powershell - CMD中单引号和双引号的区别

powershell - 动态变量属性

powershell - 使用 PowerShell 创建计划的 Azure WebJob

asp.net-mvc-4 - 是否可以使用 NuGet 包升级到 MVC4?

nuget - 什么控制 NuGet 包中引用的特定版本属性?

powershell - 在调用 Add-AzureCertificate 之前确定 .pfx 文件是否需要密码

c# - 如何将快速彩色输出写入控制台?

c# - 实现命令行标志时,我应该使用正斜杠 (/) 还是连字符 (-) 作为前缀?