Edu*_*eca 7 .net c# roslyn .net-core .net-5
我有一个使用 C# 源生成器的项目。
https://github.com/efonsecab/PTIMicroservicesGenerators
我遇到的问题是编译控制台应用程序时遇到此问题
CSC:警告 CS8785:生成器“OpenApiClientServicesGenerator”无法生成源。它不会对输出产生影响,因此可能会出现编译错误。异常的类型为“FileNotFoundException”,消息为“无法加载文件或程序集“Microsoft.OpenApi.Readers,Version=1.2.3.0,Culture=neutral,PublicKeyToken=3f5743946376f042”或其依赖项之一。该系统找不到指定的文件。'
有谁知道使用 C# 源生成器时解决此问题的正确方法是什么?谢谢您的帮助。
截至 2022 年 5 月,我相信您需要做的不仅仅是添加包引用:
在生成器项目文件中:
GeneratePathProperty="true" PrivateAssets="all" <ItemGroup>
<!-- Generator dependencies -->
<PackageReference Include="CsvTextFieldParser" Version="1.2.2-preview" GeneratePathProperty="true" PrivateAssets="all" />
</ItemGroup>
<PropertyGroup>
<GetTargetPathDependsOn>$(GetTargetPathDependsOn);GetDependencyTargetPaths</GetTargetPathDependsOn>
</PropertyGroup>
<Target Name="GetDependencyTargetPaths">
<ItemGroup>
<TargetPathWithTargetPlatformMoniker Include="$(PKGCsvTextFieldParser)\lib\netstandard2.0\CsvTextFieldParser.dll" IncludeRuntimeDependency="false" />
</ItemGroup>
</Target>
</Project>
Run Code Online (Sandbox Code Playgroud)
问题是您没有部署所有依赖项。
将以下内容添加到PTI.Microservices.Generators.csproj项目文件中
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
Run Code Online (Sandbox Code Playgroud)
告诉 msbuild 将所有依赖项复制到输出目录。
| 归档时间: |
|
| 查看次数: |
6348 次 |
| 最近记录: |