必要な機能を c# でコーディングし、それを com ライブラリにして inno セットアップで呼び出すことができることを知りました。以下は私が遊んでいるコードです。
C# コード:
namespace SetupUtility
{
[Guid("BC45B534-C9E7-4C43-B57C-56B77C1C6CEE")]
public interface IMyClass
{
void WriteToFile(string filepath, string name, string orgName, string emailID);
}
[Guid("9AB25B08-FF74-4ADA-9A16-62ADB4603A56"),
ClassInterface(ClassInterfaceType.None)]
public class MyClass:IMyClass
{
public void WriteToFile(string filepath,string name, string orgName, string emailID)
{
try
{
string[] strings = { name, orgName, emailID };
File.WriteAllLines(filepath + "userDetails.txt", strings);
MessageBox.Show("File Written Successfully");
}
catch (Exception ex)
{
MessageBox.Show("Error: " + ex.ToString());
}
}
}
}
以下は、私が苦労して書いたパスカル スクリプトからの抜粋です。
ExtractTemporaryFile('SetupUtility.dll');
Exec('{dotnet40}\regasm.exe','{tmp}\SetupUtility.dll', '', SW_SHOW,
ewWaitUntilTerminated, ResultCode);
obj := CreateOleObject('SetupUtility.MyClass');
obj.WriteToFile('{tmp}',ContactPerson, OrgName, Email);
コードは正常にコンパイルされますが、セットアップを実行すると、「クラスが登録されていません」というメッセージが表示されます。エラーはどこから来て、可能な方法は何ですか?