Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,6 @@
"commands": [
"paket"
]
},
"dotnet-mergenupkg": {
"version": "3.0.0",
"commands": [
"dotnet-mergenupkg"
]
}
}
}
2 changes: 1 addition & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:

strategy:
matrix:
os: [windows-latest]
os: [ubuntu-latest]
dotnet: ['9.0.x']
runs-on: ${{ matrix.os }}

Expand Down
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Expecto 10.2.1
- Aether 8.3.1
- McMaster.NETCore.Plugins 2.0.0
- Removed `dotnet-mergenupkg` (broken in .NET 9 due to expired signature certificates)
- `Myriad` and `Myriad.Sdk` are now published as separate NuGet packages; `Myriad.Sdk` declares `Myriad` as a transitive dependency so no manual tool installation is required
- CI publish workflow now runs on `ubuntu-latest`
## [0.8.3]
## Fixed
Nuget package now has correct link to changelog
Expand Down
10 changes: 6 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,13 @@ If you enjoy this repo and wanted to shown your appriciation etc then I do have
To use Myriad via its MSBuild support you add the `Myriad.Core` and `Myriad.Sdk` package references:
```xml
<ItemGroup>
<PackageReference Include="Myriad.Core" Version="0.5.0" />
<PackageReference Include="Myriad.Sdk" Version="0.5.0" />
<PackageReference Include="Myriad.Core" Version="0.8.4" />
<PackageReference Include="Myriad.Sdk" Version="0.8.4" />
</ItemGroup>
```

`Myriad.Sdk` automatically pulls in the `Myriad` CLI tool as a NuGet transitive dependency — no separate `dotnet tool install` step is required.

An input file is specified by using the usual `Compile` element:
```xml
<Compile Include="Library.fs"/>
Expand Down Expand Up @@ -154,8 +156,8 @@ The full fsproj is detail below:
</Compile>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Myriad.Core" Version="0.5.0" />
<PackageReference Include="Myriad.Sdk" Version="0.5.0" />
<PackageReference Include="Myriad.Core" Version="0.8.4" />
<PackageReference Include="Myriad.Sdk" Version="0.8.4" />
</ItemGroup>
</Project>
```
Expand Down
3 changes: 1 addition & 2 deletions build.proj
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,7 @@
<Target Name="Pack" DependsOnTargets="Clean;Restore;Test">
<!-- pack sdk then whole sln -->
<Exec Command='dotnet pack src/Myriad.Sdk/Myriad.Sdk.proj -c Release -o "$(NupkgsDir)" /p:Version=$(Version)' />
<Exec Command='dotnet pack src/Myriad.sln -c Release -o "$(NupkgsDir)" /p:Version=$(Version)' />
<Exec Command='dotnet mergenupkg --source "$(NupkgsDir)/Myriad.Sdk.$(Version).nupkg" --other "$(NupkgsDir)/Myriad.$(Version).nupkg" --tools --only-files' />
<Exec Command='dotnet pack src/Myriad.sln -c Release -o "$(NupkgsDir)" /p:Version=$(Version)' />
Comment on lines 23 to +25
Copy link

Copilot AI Mar 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Myriad.Sdk.proj now has a PackageReference to Myriad, but the Pack target packs Myriad.Sdk before packing the solution that produces Myriad.$(Version).nupkg. For a new version/tag (or any local pack where that version isn't already on NuGet), dotnet pack src/Myriad.Sdk/Myriad.Sdk.proj will fail restore because Myriad at $(Version) isn't available yet. Consider either packing Myriad first and adding $(NupkgsDir) as a restore source when packing Myriad.Sdk, or switching to a project-reference-based approach so the dependency can be resolved without requiring a pre-published package.

Copilot uses AI. Check for mistakes.
</Target>

</Project>
5 changes: 3 additions & 2 deletions src/Myriad.Sdk/Myriad.Sdk.proj
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,14 @@
<TargetFramework>netstandard2.1</TargetFramework>
<IncludeBuildOutput>false</IncludeBuildOutput>
<DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>
<SuppressDependenciesWhenPacking>true</SuppressDependenciesWhenPacking>
<PackProjectInputFile>$(MSBuildProjectFullPath)</PackProjectInputFile>
<NoBuild>true</NoBuild>
<PackageId>Myriad.Sdk</PackageId>
<Description>MSBuild integration between Myriad and .NET Sdk projects</Description>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Myriad" Version="$(Version)" />
Copy link

Copilot AI Mar 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adding a PackageReference to Myriad means dotnet pack of Myriad.Sdk.proj must be able to restore Myriad at $(Version) from configured NuGet sources. When cutting a new release (or packing locally before publishing), that version of Myriad typically doesn't exist yet, so the pack/restore will fail unless the build sets up a local source (e.g. $(NupkgsDir)) or uses a project-reference-based approach.

Suggested change
<PackageReference Include="Myriad" Version="$(Version)" />
<ProjectReference Include="..\Myriad\Myriad.fsproj" />

Copilot uses AI. Check for mistakes.
</ItemGroup>
<ItemGroup>
<Content Include="build\Myriad.Sdk.props">
<Pack>true</Pack>
Expand All @@ -27,5 +29,4 @@
<Visible>true</Visible>
</Content>
</ItemGroup>
<Import Project="..\..\.paket\Paket.Restore.targets" />
</Project>
4 changes: 3 additions & 1 deletion src/Myriad.Sdk/build/Myriad.Sdk.props
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

<PropertyGroup>
<MyriadSdk_Generator_ExeHost>dotnet </MyriadSdk_Generator_ExeHost>
<MyriadSdk_Generator_Exe>$(MSBuildThisFileDirectory)../tools/net9.0/any/Myriad.dll</MyriadSdk_Generator_Exe>
<!-- Extract the version from the Myriad.Sdk package directory path so we can locate the matching Myriad tool package -->
<_MyriadSdkVersion>$([System.IO.Path]::GetFileName($([System.IO.Path]::GetDirectoryName($([System.IO.Path]::GetDirectoryName('$(MSBuildThisFileFullPath)'))))))</_MyriadSdkVersion>
<MyriadSdk_Generator_Exe Condition="'$(MyriadSdk_Generator_Exe)' == ''">$([System.IO.Path]::Combine('$(NuGetPackageRoot)', 'myriad', '$(_MyriadSdkVersion)', 'tools', 'net9.0', 'any', 'Myriad.dll'))</MyriadSdk_Generator_Exe>
</PropertyGroup>

</Project>