sta*_*ser 8 .net c# .net-core .net-6.0
我想使用“添加 COM 参考”中的“TaskScheduler 1.1 类型库”来使用 TaskScheduler。
using TaskScheduler;
...
ITaskService taskservice = null;
taskservice = new TaskScheduler.TaskScheduler(); <=NotSupportedException
taskservice.Connect(null, null, null, null);
Run Code Online (Sandbox Code Playgroud)
但上面的代码会引发异常。
System.NotSupportedException:“内置 COM 已通过功能开关禁用。请参阅https://aka.ms/dotnet-illink/com了解更多信息
如果 PublishTrimmed 设置为 false,则不会引发异常。但是,我不想将其设置为 false,因为它会增加 exe 的大小。
项目文件如下
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<PublishSingleFile>true</PublishSingleFile>
<SelfContained>false</SelfContained>
<PublishTrimmed>true</PublishTrimmed>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
我尝试将程序集添加到 TrimmerRootAssembly。但以下不起作用。
<ItemGroup>
<TrimmerRootAssembly Include="TaskScheduler" />
<TrimmerRootAssembly Include="Microsoft.Win32.TaskScheduler" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
小智 11
似乎由于 COM 引用的修剪可能会导致问题,默认情况下它已被禁用。您可以通过添加到csproj 文件中来
重新启用它。<BuiltInComInteropSupport>true</BuiltInComInteropSupport>PropertyGroup
您还可以使用 ComWrappers 在 .NET 5 中获得正确的 AOT 互操作解决方案 - https://learn.microsoft.com/en-us/dotnet/standard/native-interop/tutorial-comwrappers
| 归档时间: |
|
| 查看次数: |
3170 次 |
| 最近记录: |