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(())
}