我在使用IKVM.Maven.SDK时遇到了一些问题--为了简单起见,我创建了一个基本的.NET6.0控制台应用程序,它使用slf4j来记录"Hello World"--和https://www.slf4j.org/manual.html版一样,但使用的是.Net.

尽管将MavenReference添加到org.slf4j:slf4j-apiorg.slf4j:slf4j-simple,我仍然收到警告:

SLF4J: No SLF4J providers were found.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.

.org称"打印此警告是因为在您的类路径上找不到slf4j提供程序(或绑定)."

如何使用IKVM/IKVM.Maven.SDK设置类路径?

我的csproj文件:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net6.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="IKVM.Maven.Sdk" Version="1.5.5" />
    <MavenReference Include="org.slf4j:slf4j-api" Version="2.0.9" />
    <MavenReference Include="org.slf4j:slf4j-simple" Version="2.0.9" />
  </ItemGroup>
</Project>

我的Program.cs文件:

using org.slf4j;

Logger logger = LoggerFactory.getLogger("IkvmLogTests");
logger.info("Hello, World!");

我try 将USER环境变量集添加到下载Maven的位置

$env:CLASSPATH: C:\Users\matt\.m2\repository

在Visual Studio中构建时,该目录中确实填充了slf4j-api和slf4j-Simple的JAR文件(例如,对于slf4j-api,文件C:\Users\matt\.m2\repository\org\slf4j\slf4j-api\2.0.9\slf4j-api-2.0.9.jar在那里).

我试着添加

<PackageReference Include="IKVM" Version="8.6.2" />

但不会有任何变化.

我遗漏了什么?

推荐答案

我只需要预加载任何动态程序集(感谢IKVM.Maven.Sdk的主要发起人/贡献者之一GitHub上wasabii人的响应)

using org.slf4j;

// preload logging provider
Assembly.Load("slf4j.simple");

Logger logger = LoggerFactory.getLogger("IkvmLogTests");
logger.info("Hello, World!");

Csharp相关问答推荐

PostingAsJsonAschange在从调用的方法返回时给出500错误

VB.Net的SON模式导致集合代码不工作

禁用AutoSuggestBox项目更改时的动画?

System. InvalidOperationException:无法将数据库中的字符串值i转换为映射的ItemType枚举中的任何值''''

如何分配对象后的class的属性?

Nuget包Serilog.Sinks.AwsCloudwatch引发TypeLoadExceptions,因为父类型是密封的

.NET HttpClient、JsonSerializer或误用的Stream中的内存泄漏?

为什么Regex.IsMatch(";\\t";,";\\t";)返回FALSE而不是TRUE?

单行上的ReSharper数据标注

VS 2022 for ASP.NET Core中缺少自定义项模板

JsonSchema.Net删除假阳性判断结果

在C#中过滤Excel文件

记录类型';==运算符是否与实现IEquatable<;T&>;的类中的';equals&>方法执行等价比较?

在C#中有没有办法减少大型数组中新字符串的分配?

为什么我不能从我的异步任务方法中返回异步任务方法?

JsonPath在Newtonsoft.Json';S实现中的赋值

如何从Azure函数使用Graph API(SDK 5.35)中的[FindMeetingTimes]

具有嵌套属性的IGGroup

用于分钟和秒验证的MudTextfield的正则表达式掩码

如何使ExecuteAsync异步运行