fn install_module()

in serde-generate/src/csharp.rs [1174:1221]


    fn install_module(
        &self,
        config: &CodeGeneratorConfig,
        registry: &Registry,
    ) -> std::result::Result<(), Self::Error> {
        let name = config.module_name.clone();
        let generator = CodeGenerator::new(config);
        let dir_path = generator.write_source_files(self.install_dir.clone(), registry)?;

        let back_path: String = "..\\"
            .to_string()
            .repeat(dir_path.strip_prefix(&self.install_dir)?.iter().count());
        let mut deps = vec!["Serde".to_string()];
        for encoding in &config.encodings {
            deps.push(encoding.name().to_camel_case());
        }
        let deps: String = deps
            .iter()
            .map(|d| {
                format!(
                    "      <ProjectReference Include=\"{1}{0}\\{0}.csproj\" />\n",
                    d, back_path
                )
            })
            .collect();

        let mut proj = std::fs::File::create(dir_path.join(name + ".csproj"))?;
        write!(
            proj,
            r#"
<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
       <TargetFramework>netstandard2.0</TargetFramework>
       <LangVersion>7.2</LangVersion>
    </PropertyGroup>
    <ItemGroup>
      <PackageReference Include="System.Memory" Version="4.5.4" />
      <PackageReference Include="System.ValueTuple" Version="4.5.0" />
    </ItemGroup>
    <ItemGroup>
{}    </ItemGroup>
</Project>
"#,
            deps
        )?;

        Ok(())
    }