use duct::cmd;
use std::path::{Path, PathBuf};
pub(crate) fn build_csharp(project_path: &Path, _build_debug: bool) -> anyhow::Result<PathBuf> {
let output_path = project_path.join("bin/Release/net7.0/StdbModule.wasm");
if output_path.exists() {
std::fs::remove_file(&output_path)?;
}
let result = cmd!("dotnet", "publish", "-c", "Release").dir(project_path).run();
match result {
Ok(_) => {}
Err(error) => {
if error.kind() == std::io::ErrorKind::NotFound {
anyhow::bail!("Failed to build project. dotnet not found in path. Please install the .NET Core SDK.");
} else {
anyhow::bail!("Failed to build project. {}", error);
}
}
}
if !output_path.exists() {
anyhow::bail!("Failed to build project");
}
Ok(output_path)
}