いくつかの調査の後、IBundleTransform インターフェイスを使用して、これを行う方法を見つけました。これにより、バンドル コンテンツにアクセスできるようになり、必要な場所でディスクにダンプし、ライブラリを使用する他のアプリケーションで後で使用するだけで済みます。
public class ScriptsBundleTransform : IBundleTransform
{
public string ScriptsPath { get; set; }
public string Version { get; set; }
public string Minified { get; set; }
public string Full { get; set; }
public ScriptsBundleTransform()
{
}
public ScriptsBundleTransform(string path, string version, string minified, string full)
{
ScriptsPath = path;
Version = version;
Minified = minified;
Full = full;
}
public void Process(BundleContext context, BundleResponse response)
{
string scriptsRoot = context.HttpContext.Server.MapPath(Path.Combine(ScriptsPath, Version));
if (!Directory.Exists(scriptsRoot))
Directory.CreateDirectory(scriptsRoot);
// if minified file name specified...
if (!string.IsNullOrEmpty(Minified))
{
using (TextWriter writer = File.CreateText(Path.Combine(scriptsRoot, Minified)))
{
writer.Write(response.Content);
}
}
// if full file name specified...
if (!string.IsNullOrEmpty(Full))
{
using (Stream writer = File.OpenWrite(Path.Combine(scriptsRoot, Full)))
{
foreach (var file in response.Files)
{
file.VirtualFile.Open().CopyTo(writer);
}
}
}
}
}
その後、バンドル構成でこのトランスフォーマーをディスクにダンプするバンドルに追加する必要があります。
widgets.Transforms.Add(new ScriptsBundleTransform()
{
Version = "1.0.0",
ScriptsPath = "~/Scripts",
Minified = "jquery.library.min.js",
Full = "jquery.library.js"
});
ライブラリ内のウィジェットが変更されても、ダンプ ファイルは自動的に再生成され、このプロセスを手動で制御する必要はありません。