من یک پروژه کتابخانهای در .NET Core به نام "LIBTOOBA" دارم که به شکل زیر پیکربندی شده است:
فایل پروژه (LIBTOOBA.csproj):
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<Reference Include="Interop.TSMSLIB_TLB">
<HintPath>DLLS\Interop.TSMSLIB_TLB.dll</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
</ItemGroup>
</Project>
جزییات DLL:
Interop.TSMSLIB_TLB
x86
تعاریف کلاسها:
namespace LIBTOOBA
{
class Authentication
{
//...
}
class Proxy
{
//...
}
using TSMSLIB_TLB;
class TSMS
{
private Authentication a = new Authentication();
public Authentication A
{
set { this.a = value; }
get { return this.a; }
}
private TSMS_Tooba t = new TSMS_Tooba();
public TSMS_Tooba T
{
set { this.t = value; }
get { return this.t; }
}
public void init()
{
t.UserName = this.a.UserName;
t.Password = this.a.PassWord;
t.LibKey = this.a.LibKey;
t.ProxyServer = this.p.Server;
t.ProxyPort = this.p.Port;
t.ProxyUserName = this.p.UserName;
t.ProxyPassword = this.p.PassWord;
}
}
}
Main Class:
namespace LIBTOOBA
{
public class CL_TOOBASMS
{
private readonly TSMS CL_SMS;
public CL_TOOBASMS(string userName, string password, string libKey)
{
// Validate inputs
if (string.IsNullOrWhiteSpace(userName))
throw new ArgumentException("Username cannot be null or empty", nameof(userName));
if (string.IsNullOrWhiteSpace(password))
throw new ArgumentException("Password cannot be null or empty", nameof(password));
if (string.IsNullOrWhiteSpace(libKey))
throw new ArgumentException("LibKey cannot be null or empty", nameof(libKey));
CL_SMS = new TSMS();
try
{
CL_SMS.A.UserName = userName;
CL_SMS.A.PassWord = password;
CL_SMS.A.LibKey = libKey;
}
catch (Exception ex)
{
throw new InvalidOperationException("Failed to set SMS library credentials.", ex);
}
}
public (string Number, int Credit, int UsedCredit, string LastDate) GetMyAccountInfo()
{
//...
return (number, credit, usedCredit, lastDate);
}
public string GetDeliveryInfo(string sendToNumber, string sendEvent)
{
//...
return delivery;
}
public string SendSMS(string sendToNumber, string sendMsg)
{
//...
return sendEventTxt;
}
}
}
مشکل من:
توی پروژه WPF که دارم که هدف پلتفرم آن AnyCPU
(x64) تنظیم شده است. وقتی کتابخانه "LIBTOOBA" را اضافه میکنم و برنامه را اجرا میکنم، با خطای زیر مواجه میشوم:
System.Runtime.InteropServices.COMException: 'Retrieving the COM class factory for component with CLSID {83A108DD-D51F-43AF-9290-00541698F0F9} failed due to the following error: 80040154 Class not registered (0x80040154 (REGDB_E_CLASSNOTREG)).'
نسخه x64 از Interop.TSMSLIB_TLB.dll
موجود نیست.
اگر هدف پلتفرم WPF را به x86
تغییر دهم، برنامه به درستی اجرا میشود. اما میخوام برنامه WPF NET Core 6 خود را با هدف پلتفرم AnyCPU
(x64) نگه دارم. چطور میتونم این مشکل رو حل کنم؟
راهحلهای احتمالی که من در نظر دارم:
لطفا راهنمایی بفرمایید.
تاریخ :
1399/11/25
- ساعت :
11:22:00 AM
- بازدید :
3896
- پاسخ :
2
|
تاریخ :
1403/12/02
- ساعت :
12:09:00 AM
- بازدید :
270
- پاسخ :
1
|
تاریخ :
1398/07/08
- ساعت :
12:21:00 AM
- بازدید :
3048
- پاسخ :
2
|
تاریخ :
1403/11/23
- ساعت :
08:24:00 PM
- بازدید :
191
- پاسخ :
2
|
تاریخ :
1399/11/10
- ساعت :
10:01:00 PM
- بازدید :
7167
- پاسخ :
4
|
تاریخ :
1399/04/09
- ساعت :
08:51:00 PM
- بازدید :
3094
- پاسخ :
1
|
تاریخ :
1399/03/25
- ساعت :
08:58:00 PM
- بازدید :
3825
- پاسخ :
1
|
تاریخ :
1398/10/03
- ساعت :
10:47:00 PM
- بازدید :
5336
- پاسخ :
8
|
تاریخ :
1400/12/18
- ساعت :
10:24:00 AM
- بازدید :
2111
- پاسخ :
1
|
تاریخ :
1401/01/26
- ساعت :
12:14:00 PM
- بازدید :
3002
- پاسخ :
1
|
تاریخ :
1404/01/07
- ساعت :
05:02:00 AM
- بازدید :
89
- پاسخ :
1
|
تاریخ :
1402/04/28
- ساعت :
09:04:00 PM
- بازدید :
1314
- پاسخ :
0
|
تاریخ :
1403/12/30
- ساعت :
06:43:00 PM
- بازدید :
66
- پاسخ :
1
|
تاریخ :
1398/08/23
- ساعت :
09:16:00 PM
- بازدید :
9852
- پاسخ :
1
|
تاریخ :
1404/01/03
- ساعت :
12:18:00 PM
- بازدید :
38
- پاسخ :
1
|
تاریخ :
1404/01/03
- ساعت :
10:39:00 AM
- بازدید :
45
- پاسخ :
1
|
تاریخ :
1404/01/02
- ساعت :
05:05:00 PM
- بازدید :
60
- پاسخ :
1
|
تاریخ :
1403/12/30
- ساعت :
06:52:00 PM
- بازدید :
48
- پاسخ :
1
|
تاریخ :
1399/06/04
- ساعت :
02:25:00 PM
- بازدید :
4419
- پاسخ :
2
|
تاریخ :
1403/11/30
- ساعت :
10:36:00 AM
- بازدید :
202
- پاسخ :
2
|