ITコンサルの日常

ITコンサル会社に勤務する普通のITエンジニアの日常です。

VBScriptをC#で拡張する

概要

VBScriptを使っていて、限界を感じたときに使うワザ(?)

前提

.NET Framework 2.0以上

準備

.NET Framework SDKをインストールする

1.キーペアを生成する

C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin>sn -k test.snk

Microsoft(R) .NET Framework Strong Name Utility  バージョン 3.5.30729.1
Copyright (c) Microsoft Corporation. All rights reserved.

キー ペア が 'test.snk' に書き込まれました。

C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin>

2.ライブラリを書く

今回はこんな役立たずの足し算ライブラリ。

namespace Test
{
	public class TestClass
	{
		public int Add(int a, int b)
		{
			return a+b;
		}
	}
}

test.csとして保存する。

3.コンパイルする

2で作ったtest.csと1で生成したtest.snkを同じディレクトリにおいてコンパイルする。

work>csc /out:test.dll /target:library /keyfile:test.snk test.cs
Microsoft (R) Visual C# 2008 Compiler version 3.5.30729.1
for Microsoft (R) .NET Framework version 3.5
Copyright (C) Microsoft Corporation. All rights reserved.


work>

test.dllが生成される。

4.生成されたdllを登録する

work>"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\regasm.exe" test.dll /codebase
Microsoft(R) .NET Framework Assembly Registration Utility 2.0.50727.3053
Copyright (C) Microsoft Corporation 1998-2004.  All rights reserved.

型は正常に登録されました。

work>

5.使ってみる

Set t = CreateObject("Test.TestClass")
msgbox(t.add(1, 2))

test.vbsとして保存して、ダブルクリックする。
3が表示されるはず。

課題

どうやって配布するの?