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

时间:2014-11-12 17:19:49

标签: powershell nuget console-application csproj

我有一个包,在安装时,设置一个项目来使用Nunit gui。它安装了Test Runner类(应该被认为是启动对象)和所需的所有引用。

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

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

关于如何实现这一目标的任何想法?

1 个答案:

答案 0 :(得分:2)

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

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

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

例如,以下是如何将项目类型更改为“控制台应用程序”:

$project.Properties.Item("OutputType").Value = 0

(0 = Windows Application,1 = Console Application,2 = Class Library)

您可以使用以下命令设置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

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