我正在创建一个我希望兼容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}}这是我的后备选项。
答案 0 :(得分:3)
我不相信使用默认转换支持可以描述的内容。您可以直接从powershell安装脚本调用转换功能,否则您必须手动进行更改(并在卸载脚本上回滚)。