针对不同MVC版本的不同NuGet Web.Config.Transforms

时间:2011-07-02 22:11:51

标签: c# asp.net-mvc powershell .net-4.0 nuget

我正在创建一个我希望兼容MVC2和MVC3应用程序的nuget包(全部在.net 4.0上)。

问题是,我想在web.config文件中添加一些命名空间(如此):

<pages>
  <namespaces>
    <add namespace="NewPackage.Web" />
  </namespaces>
</pages>

但是对于剃须刀,我必须这样说:

<system.web.webPages.razor>
    <pages>
        <namespaces>
            <add namespace="NewPackage.Web" />
        </namespaces>
    </pages>
</system.web.webPages.razor>

但是,当然,这对MVC2不起作用。所以我希望只有在检测到mvc3时才能有条件地运行web.config.transform。我知道nuget并没有真正有能力做到这一点,但我想知道powershell。我知道你可以创建一个install.ps1,我知道它可以检测一个项目的引用,但它能检测一个引用版本号,然后运行web.config.transform吗?有更好的方法吗?

我知道我可以按照像NewPackage.Mvc3这样的模式创建一个新包,就像我见过别人一样,但对于安装它的用户来说这似乎不太明显,我只想要稍微不同{{ 1}}这是我的后备选项。

1 个答案:

答案 0 :(得分:3)

我不相信使用默认转换支持可以描述的内容。您可以直接从powershell安装脚本调用转换功能,否则您必须手动进行更改(并在卸载脚本上回滚)。