vipwan / Biwen.AutoClassGen

Source Gen Roslyn
MIT License
12 stars 0 forks source link

TestConsole项目这个扩展AutoInjectExtension爆红,测试不了 #9

Open Austin-Patrician opened 4 hours ago

Austin-Patrician commented 4 hours ago

AutoInjectExtension 这个自动注入的扩展爆红了,测试不了

vipwan commented 3 hours ago

你好, 开发工具是VS2022 preview最新版. 并且本地Debug模式下

image

Austin-Patrician commented 2 hours ago

这个不适合webapi项目么?我加了Condition="'$(Configuration)'=='Debug'" ,并且将vs2022升到最新的版本仍然不行 Snipaste_2024-09-20_15-34-12

Austin-Patrician commented 2 hours ago

请问大佬如果我想集成 Autoinject 部分到自己的webapi项目中的话,为啥把AutoInjectSourceGenerator 部分植入后项目编译后并没有生效,是需要在program.cs 里面手动触发么?

vipwan commented 2 hours ago

请问大佬如果我想集成 Autoinject 部分到自己的webapi项目中的话,为啥把AutoInjectSourceGenerator 部分植入后项目编译后并没有生效,是需要在program.cs 里面手动触发么?

不是这样的,我的回答的源代码开发环境用于测试的; 实际开发的话引用库即可

<PackageReference Include="Biwen.AutoClassGen" Version="1.5.0" PrivateAssets="all"  />
<PackageReference Include="Biwen.AutoClassGen.Attributes" Version="1.3.6" />
Austin-Patrician commented 2 hours ago

嗯嗯,我理解大佬的意思,我的意思是想拆出Autoinject 这部分代码植入我的项目,不想nuget package的形式,请问可以么?

vipwan commented 2 hours ago

嗯嗯,我理解大佬的意思,我的意思是想拆出Autoinject 这部分代码植入我的项目,不想nuget package的形式,请问可以么?

肯定是可以的,但是你需要对Roslyn比较熟悉并且能调试和编译, 我的源代码库你首先要能调试通过才能继续

vipwan commented 2 hours ago

嗯嗯,我理解大佬的意思,我的意思是想拆出Autoinject 这部分代码植入我的项目,不想nuget package的形式,请问可以么? vs开发环境还需要安装的组件你也需要安装上: image

Austin-Patrician commented 2 hours ago

我刚刚试了试,虽然TestConsole的Program.cs 爆红,但是跑起来是没问题的,大佬方便加个QQ学习一下么?

vipwan commented 2 hours ago

我刚刚试了试,虽然TestConsole的Program.cs 爆红,但是跑起来是没问题的,大佬方便加个QQ学习一下么?

这个编译能通过说明Roslyn分析器有缓存, 关闭IDE 然后等几分钟再打开 这个报错就会消失!

Austin-Patrician commented 1 hour ago

是的 ,我检查了下Dependencies下Analyzers已经生成了,请问是否配置了class改变自动重新生成的Notify功能?

vipwan commented 1 hour ago

是的 ,我检查了下Dependencies下Analyzers已经生成了,请问是否配置了class改变自动重新生成的Notify功能?

不是很理解你的意思, 理论上项目中任何代码的改变,分析器都会做出反应的,也就是会自动生成代码,如果存在缓存可能F12定位到的代码片段可能不是最新的,你可以配置让生成器生成到指定路径 就可以观察了