2011-07-02 17 views
3

MVC2とMVC3の両方のアプリケーション(すべての.net 4.0)で互換性のあるナゲットパッケージを作成しています。MVCバージョンごとに異なるNuGet Web.Config.Transforms

問題は、私は(そうのような)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を実行する方法がいくつか期待されていました。私はナゲットが実際にこれを行う能力を持っていないことを理解していますが、私はパワーシェルについて疑問を抱いていました。私はあなたがinstall.ps1を作成することができ、プロジェクトの参照を検出できることを知っていますが、参照バージョン番号を検出してからweb.config.transformを実行できますか?いくつかの良い方法がありますか?

NewPackage.Mvc3のようなパターンで新しいパッケージを作成できることは知っていますが、他の人には見てもらえませんが、インストールするユーザーにとってはそれほど明白ではないようですが、ちょっと違うだけですweb.config.transformオプション。

答えて

3

私はあなたの記述がデフォルトの変換サポートを使用して可能であるとは考えていません。 PowerShellのインストールスクリプトから直接変換機能を呼び出すことができるかもしれません。そうしないと、手動で変更を加えてアンインストールスクリプトでロールバックする必要があります。

+0

私は考えました。 PowerShellから変換機能を呼び出す方法(それが可能であれば)または私がまだ見つけていない/考えている代替方法のヒントを期待しています。 –

+0

私はその件について別の質問をし、[NuGet project discussion area](http://nuget.codeplex.com/discussions) –

関連する問題