【发布时间】:2015-03-23 23:59:41
【问题描述】:
我正忙于创建一个仅在内部使用的 Nuget 包,它安装其他包作为依赖项,Ninject 就是其中之一。
安装后,会在项目的 App_Start 文件夹中添加一个 NinjectWebCommon.cs 文件。我的自定义包需要通过以下方式修改该文件:(仅显示部分代码)
//code above removed...
using Ninject;
using Ninject.Web.Common;
//modified this part already - refer to block quote 1 on how i did it
using mylibrary.whatever;
//code below removed...
我设法通过以下方式使用 install.ps1(根据 Nuget 包约定)插入“使用 mylibrary.whatever”行,尽管不是那么复杂(对 powershell 的经验很少):
引用 1:
$p = 获取项目;
$p = 分割路径 $p.filename;
$p += "\App_Start\NinjectWebCommon.cs";
(获取内容 $p)| foreach-object {$_ -replace "使用 Ninject.Web.Common;", "使用 Ninject.Web.Common;`r`n 使用 mylibrary.whatever;"} |设置内容 $p;
现在添加 1 行就可以了。
我的问题在于更改此部分...
// code above removed...
private static void RegisterServices(IKernel kernel)
{
}
// code below removed...
到这个...
// code above removed...
private static void RegisterServices(IKernel kernel)
{
kernel.Load(new mylibrarymodule());
}
// code below removed...
更复杂一点的是,这个 NinjectWebCommon.cs 文件可以通过 x 数量的内部 Nuger 包以相同的方式进行更改。所以
// code above removed...
private static void RegisterServices(IKernel kernel)
{
kernel.Load(new mylibrarymodule());
}
// code below removed...
也可以变成
// code above removed...
private static void RegisterServices(IKernel kernel)
{
kernel.Load(new mylibrarymodule());
kernel.Load(new myotherlibrarymodule());
kernel.Load(new anotherlibrarymodule());
}
// code below removed...
任何帮助将不胜感激,因为 powershell 不是我的强项之一......
【问题讨论】:
标签: powershell visual-studio-2013 powershell-2.0 nuget-package