を作成することはできませんCOM可視、私はすべてのガイドとstackoverflowの様々な他の質問を読んだが、私はまだオブジェクトを作成するためにvbscriptを得ることができないActiveXコンポーネントは、私は従来のASPでの画像の上に</p> <p>をbase64エンコーディングを使用する必要があります要件はので、私はC#プロジェクトでは非常に単純なクラスのプロジェクトを作成し、それをしようとして持つオブジェクトのCOM相互運用機能
アセンブリはComVisibleとしてマークされ、COM interop、クラスの場合:
namespace Crypto
{
[ComVisible(true)]
[Guid("ad491fe9-ade0-46a1-bae0-d407a987a9e9"),ClassInterface(ClassInterfaceType.None)]
public class Base64
{
public Base64() {
//default com exposable constructor
}
public string Base64Encode(string filePath) {
if (!File.Exists(filePath)) return "";
using (Image image = Image.FromFile(filePath))
{
using (MemoryStream m = new MemoryStream())
{
image.Save(m, image.RawFormat);
byte[] imageBytes = m.ToArray();
// Convert byte[] to Base64 String
string base64String = Convert.ToBase64String(imageBytes);
return base64String;
}
}
}
}
}
私は
を得るset obj = CreateObject("Crypto.Base64")
テスト、従来のASPページから呼び出すとき、すべてが正常に
を登録し、ビルドした後、私はcominteropとして登録し、とにかくGACに入れ、
regasm *<file path>* /codebase /tlb
gacutil -i *<file path>*
を使用して
Microsoft VBScript runtime error '800a01ad'
ActiveX component can't create object: 'Crypto.Base64'
私はComInteropと約7-8年前に.Net 2.0で共同編集しましたerythingは、それが窓10は、ターゲットのコンパイルがで私を指しているため@Lankymartに4.6.2フレームワーク
これは役立つはずです - [エラーASP 0177:8007007e Server.CreateObjectがCOM DLLで失敗する](// stackoverflow.com/a/35985827)*(具体的には - 「WindowsでCOM DLLを登録する方法」)*。 – Lankymart
[エラーASP 0177:8007007eの重複した可能性があります。COM DLLのServer.CreateObjectが失敗します](http://stackoverflow.com/questions/35976543/error-asp-0177-8007007e-server-createobject-fails-for-com-dll ) – Lankymart