问题描述
是否有任何标准方法/选项,如何安排通过 Source Generators
生成并添加到构建过程中的文件在项目结构中也是物理可见的(因此开发人员可以查看结果代码,例如通过 VS 解决方案浏览器窗口)?
我的意思是除了将代码直接保存到生成器 Execute()
中的文件之外,我预计这可能会带来其他并发症(尚未尝试)。
编辑:
- 据此:https://github.com/dotnet/roslyn/issues/49249#issuecomment-809807528,在生成器执行中不允许 I/O。
- 根据debug session(进入生成代码函数),生成的源码至少在temp文件夹中是可用的,比如
C:\Users\user\AppData\Local\Temp\.vsdbgsrc\some-guid\FileNameHint.cs
。不幸的是,标准 VS 导航 (F12) 不起作用(无论调试会话活动如何)。
解决方法
使用生成器将以下内容添加到项目中:
# yahoo finance parameters
stock_symbol = 'JPM'
length = 1
# yahoo date period
now = dt.datetime.now()
max_d = dt.datetime.now().strftime('%Y-%m-%d')
min_d = now.replace(year=now.year-length).strftime('%Y-%m-%d')
# yahoo data download
data = yf.download(stock_symbol,min_d,max_d)