草庐IT

schemas-microsoft-com

全部标签

c# - 如何将 COM 对象包装在 native .NET 类中?

我在.NET(C#)中使用广泛的现有COMAPI(可能是Outlook,但不是)。我通过在VisualStudio中添加“COM引用”来完成此操作,因此所有“魔法”都在幕后完成(即,我不必手动运行tlbimp)。虽然.NET现在可以“轻松”使用COMAPI,但它对.NET不是很友好。例如,没有泛型,事件很奇怪,像IPicture这样的怪事等。因此,我想创建一个使用现有COMAPI实现的native.NETAPI。一个简单的第一步可能是namespaceCompany.Product{classComObject{publicreadonlyglobal::Product.ComObje

c# - 如何检查 COM 组件(EXE/DLL 文件)是否已注册(使用 .NET)?

这个问题在这里已经有了答案:HowtocheckifaDLLfileisregistered?(7个答案)关闭7年前。如何使用.NET检查COM组件(EXE/DLL文件)是否已注册?

c# - 如何将 Microsoft.jQuery.Unobtrusive.Ajax 与 libman(库管理器)asp.net Core 2.1 一起使用?

我正在尝试使用不显眼的ajax来更新我的局部View。不幸的是,我在安装软件包时遇到了问题,因为Bower不工作(?)或根据https://learn.microsoft.com/en-us/aspnet/core/client-side/bower?view=aspnetcore-2.1不再推荐.相反,他们建议我们使用Libman。我按照https://www.c-sharpcorner.com/article/unobtrusive-ajax-and-jquery-for-partial-updates-in-asp-net-mvc/中的步骤操作.所以我已经安装了nugetMicr

c# - 命名空间 'Microsoft.EntityFrameworkCore' 中不存在“迁移”

我正在做一个ASP.NETCore项目。我已经安装了Microsoft.EntityFrameworkCore和Microsoft.EntityFrameworkCore.ToolsNuGet包。我运行了Add-MigrationInitialCreate命令,它创建了Migrations文件夹和20180905180349_InitialCreate.cs文件。但是它说Thetypeornamespacename'Migrations'doesnotexistinthenamespace'Microsoft.EntityFrameworkCore'(areyoumissinganas

c# - NETSDK1061 : The project was restored using Microsoft. NETCore.App 版本1.0.0,但使用当前设置,将使用版本2.0.9

我正在开发移动应用程序并使用MSAppCenterforCI。昨天,单元测试项目未能在AppCenter中构建,出现以下错误。我无法在任何开发人员机器上重现该问题,此错误仅发生在AppCenter中。error:NETSDK1061:TheprojectwasrestoredusingMicrosoft.NETCore.Appversion1.0.0,butwithcurrentsettings,version2.0.9wouldbeusedinstead.Toresolvethisissue,makesurethesamesettingsareusedforrestoreandfor

c# - 释放 COM 对象的正确方法?

有时,当我结束应用程序并尝试释放一些COM对象时,我会在调试器中收到一条警告:RaceOnRCWCleanUpwasdetected如果我编写一个使用COM对象的类,我是否需要实现IDisposable并在IDisposable.Dispose中对它们调用Marshal.FinalReleaseComObject>正确释放它们?如果Dispose没有被手动调用,我是否还需要在终结器中释放它们,还是GC会自动释放它们?现在我callDispose(false)inthefinalizer但我想知道这是否正确。我使用的COM对象也有一个类监听的事件处理程序。显然事件是在另一个线程上引发的,

c# - 如何以编程方式在 C# 中创建 Microsoft Access 数据库?

如果MicrosoftAccess数据库文件不存在,如何在C#中创建它? 最佳答案 最简单的答案是在您的程序中嵌入一个空的.mdb/.accdb文件并将其写入磁盘。正确答案是将COMInterop与ADOX库一起使用:varcat=newADOX.Catalog()cat.Create(connectionString);请记住使用OleDbConnectionStringBuilder生成连接字符串。 关于c#-如何以编程方式在C#中创建MicrosoftAccess数据库?,我们在S

c# - 哪些阻塞操作会导致 STA 线程发送 COM 消息?

当COM对象在STA线程上实例化时,该线程通常必须实现消息泵以编码来回其他线程的调用(请参阅here)。可以手动发送消息,也可以依靠一些但不是全部线程阻塞操作在等待时自动发送与COM相关的消息这一事实。文档通常无助于决定哪个是哪个(参见thisrelatedquestion)。如何确定线程阻塞操作是否会在STA上发送COM消息?到目前为止的部分列表:阻止做泵*的操作:Thread.JoinWaitHandle.WaitOne/WaitAny/WaitAll(虽然不能从STA线程调用WaitAll)GC.WaitForPendingFinalizersMonitor.Enter(因此lo

c# - 是否有可能拦截(或意识到)COM 对暴露给 COM 的 CLR 对象的引用计数

我已经改写了这个问题。当.net对象通过COM迭代操作暴露给COM客户端时,将创建一个CCW(COMCallableWrapper),它位于COM客户端和托管.net对象之间。在COM世界中,对象会记录其他对象对它的引用数。当引用计数变为零时,对象将被删除/释放/收集。这意味着COM对象终止是确定性的(我们在.net中使用Using/IDispose来确定性终止,对象终结器是非确定性的)。每个CCW都是一个COM对象,并且它像任何其他COM对象一样被引用计数。当CCW终止(引用计数变为零)时,GC将无法找到CCW包装的CLR对象,并且CLR对象符合收集条件。快乐的日子,世界上一切都好。

c# - 包的用途 "Microsoft.EntityFrameworkCore.Design"

所有教程都同意project.json应该包括:"Microsoft.EntityFrameworkCore.Design":{"type":"build","version":"1.0.0-preview2-final"}我从来没有包含它,也从来没有遇到过问题。我只包括"Microsoft.EntityFrameworkCore""Microsoft.EntityFrameworkCore.Sqlite"(orSqlserver)"Microsoft.EntityFrameworkCore.Tools"这个包有什么作用?为什么我可以毫无问题地排除它?更新:查看接受的答案中的评论以确定