每当我开始一个项目时,我想安装NuGet软件包Elmah,Glimpse,MvcScaffolding,Squishit和...... - 那些是我所知道的。也许我应该安装其他人?
无论如何,不必记住所有这些,将这一切都放在一个脚本中是好的,而我所要做的就是运行它。但是,这是我第一次接触PowerShell,我不知道该怎么做。
我查看了一个示例项目,脚本看起来很简单,但我很困惑为什么需要安装带有.test后缀的软件包?为什么还有-Project参数?
例如,
Install-Package SqlServerCompact -Project MileageStats.Data.SqlCe
Install-Package SqlServerCompact -Project MileageStats.Data.SqlCe.tests
我已经进行了Google搜索以了解更多内容,但我认为我正在寻找错误的地方。
答案 0 :(得分:7)
正如Fabrice已经建议的那样,使用所需的NuGet包创建项目模板可能就是我要采用的方法。要获取最新版本的NuGet包,您可以使用NuGet Package Updater包。这将绕过目前仅支持安装特定版本的NuGet包的项目模板。
或者,您可以在NuGet profile内存储有用的PowerShell脚本。在%UserProfile%\ Documents \ WindowsPowerShell 目录中创建名为 NuGet_profile.ps1 的文件(例如C:\ Users [YourUserName] \ Documents \ WindowsPowerShell \ NuGet_profile.ps1)。
在NuGet_profile.ps1中,您可以添加PowerShell功能,您可以从Visual Studio内的Package Manager控制台窗口调用这些功能。在调用函数之前,您需要重新启动Visual Studio。 NuGet_profile.ps1文件的示例如下所示。
function Install-StandardPackages {
param(
[Parameter(position=0, mandatory=$true)]
[string]$projectName
)
Install-Package elmah -ProjectName $projectName
Install-Package SqlServerCompact -ProjectName $projectName
}
function Install-StandardPackagesForAllProjects {
foreach ($project in Get-Project -all) {
Install-StandardPackages $project.Name
}
}
现在定义了这些函数,您可以在程序包管理器控制台中运行以下命令,将elmah和SqlServerCompact安装到名为MyProject的项目中。
Install-StandardPackages MyProject
或者,您可以通过在程序包管理器控制台中运行以下命令,将elmah和SqlServerCompact安装到当前打开的解决方案中的所有项目中。
Install-StandardPackagesForAllProjects
Install-Package命令中的-ProjectName参数用于指定将安装包的项目的名称。测试后缀看起来像是包含单元测试的项目名称的一部分。
答案 1 :(得分:0)
您的解决方案可能是创建一个托管在本地存储库中的元数据包。您可以创建一个nuget包,其中包含您希望为特定项目设置创建的所有不同包的依赖关系。您所要做的就是安装元软件包,然后安装所有依赖项。
答案 2 :(得分:0)
您可能想要创建自己的mvc3项目模板,您可以在其中指定首选的Nuget包。 要做到这一点,你应该看看Phil Haack blog post