.fsxスクリプトで正規表現をプリコンパイルして実験しています。しかし、生成されたアセンブリの.dllファイルの場所を指定する方法がわかりません。CodeBase
によって使用されるAssemblyName
インスタンスなどのプロパティを設定しようとしましRegex.CompileToAssembly
たが、役に立ちませんでした。これが私が持っているものです:
open System.Text.RegularExpressions
let rcis = [|
new RegexCompilationInfo(
@"^NumericLiteral([QRZING])$",
RegexOptions.None,
"NumericLiteral",
"Swensen.Unquote.Regex",
true
);
|]
let an = new System.Reflection.AssemblyName("Unquote.Regex");
an.CodeBase <- __SOURCE_DIRECTORY__ + "\\" + "Unquote.Regex.dll"
Regex.CompileToAssembly(rcis, an)
私はこれをFSIで実行しており、評価すると次のan
ようになります。
> an;;
val it : System.Reflection.AssemblyName =
Unquote.Regex
{CodeBase = "C:\Users\Stephen\Documents\Visual Studio 2010\Projects\Unquote\code\Unquote\Unquote.Regex.dll";
CultureInfo = null;
EscapedCodeBase = "C:%5CUsers%5CStephen%5CDocuments%5CVisual%20Studio%202010%5CProjects%5CUnquote%5Ccode%5CUnquote%5CUnquote.Regex.dll";
Flags = None;
FullName = "Unquote.Regex";
HashAlgorithm = None;
KeyPair = null;
Name = "Unquote.Regex";
ProcessorArchitecture = None;
Version = null;
VersionCompatibility = SameMachine;}
しかし、繰り返しになりますが、C:\ Users \ Stephen \ Documents \ Visual Studio 2010 \ Projects \ Unquote \ code \ Unquote\Unquote.Regex.dllが希望どおりに表示されません。CドライブでUnquote.Regex.dllを検索すると、一時的なAppDataフォルダーにあります。
では、どうすればによって生成されたアセンブリの.dllファイルの場所を正しく指定できますRegex.CompileToAssembly
か?