diff options
-rw-r--r-- | build/prepare-nuget-package.targets | 23 | ||||
-rw-r--r-- | docs/release-notes.md | 3 | ||||
-rw-r--r-- | docs/technical/mod-package.md | 16 | ||||
-rw-r--r-- | src/SMAPI.ModBuildConfig/SMAPI.ModBuildConfig.csproj | 39 | ||||
-rw-r--r-- | src/SMAPI.ModBuildConfig/package.nuspec | 27 | ||||
-rw-r--r-- | src/SMAPI.sln | 2 |
6 files changed, 39 insertions, 71 deletions
diff --git a/build/prepare-nuget-package.targets b/build/prepare-nuget-package.targets deleted file mode 100644 index 0682d9ff..00000000 --- a/build/prepare-nuget-package.targets +++ /dev/null @@ -1,23 +0,0 @@ -<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <!-- - - This build task is run from the ModBuildConfig project after it's been compiled, and copies the - package files to the bin\Pathoschild.Stardew.ModBuildConfig folder. - - --> - <Target Name="PreparePackage" AfterTargets="AfterBuild"> - <PropertyGroup> - <PackagePath>$(SolutionDir)\..\bin\Pathoschild.Stardew.ModBuildConfig</PackagePath> - </PropertyGroup> - <RemoveDir Directories="$(PackagePath)" /> - <Copy SourceFiles="$(ProjectDir)/package.nuspec" DestinationFolder="$(PackagePath)" /> - <Copy SourceFiles="$(SolutionDir)/../build/find-game-folder.targets" DestinationFolder="$(PackagePath)/build" /> - <Copy SourceFiles="$(ProjectDir)/build/smapi.targets" DestinationFiles="$(PackagePath)/build/Pathoschild.Stardew.ModBuildConfig.targets" /> - <Copy SourceFiles="$(TargetDir)/assets/nuget-icon.png" DestinationFiles="$(PackagePath)/images/icon.png" /> - <Copy SourceFiles="$(TargetDir)/Newtonsoft.Json.dll" DestinationFolder="$(PackagePath)/build" /> - <Copy SourceFiles="$(TargetDir)/SMAPI.ModBuildConfig.dll" DestinationFolder="$(PackagePath)/build" /> - <Copy SourceFiles="$(TargetDir)/SMAPI.Toolkit.dll" DestinationFolder="$(PackagePath)/build" /> - <Copy SourceFiles="$(TargetDir)/SMAPI.Toolkit.CoreInterfaces.dll" DestinationFolder="$(PackagePath)/build" /> - <Copy SourceFiles="$(SolutionDir)/SMAPI.ModBuildConfig.Analyzer/bin/netstandard2.0/SMAPI.ModBuildConfig.Analyzer.dll" DestinationFolder="$(PackagePath)/analyzers/dotnet/cs" /> - </Target> -</Project> diff --git a/docs/release-notes.md b/docs/release-notes.md index d02b96bc..01bcbad6 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -17,6 +17,9 @@ * For the web UI: * Updated the JSON validator/schema for Content Patcher 1.18. +* For SMAPI developers: + * Reworked how the _mod build config_ package is released, added auto-generated package on build. + ## 3.7.3 Released 16 September 2020 for Stardew Valley 1.4.1 or later. diff --git a/docs/technical/mod-package.md b/docs/technical/mod-package.md index a1457405..c338e104 100644 --- a/docs/technical/mod-package.md +++ b/docs/technical/mod-package.md @@ -343,19 +343,13 @@ project | purpose `StardewModdingAPI.ModBuildConfig.Analyzer` | Adds C# analyzers which show code warnings in Visual Studio. `StardewModdingAPI.ModBuildConfig.Analyzer.Tests` | Unit tests for the C# analyzers. -To prepare a build of the NuGet package: -1. Install the [NuGet CLI](https://docs.microsoft.com/en-us/nuget/install-nuget-client-tools#nugetexe-cli). -1. Change the version and release notes in `package.nuspec`. -2. Rebuild the solution in _Release_ mode. -3. Open a terminal in the `bin/Pathoschild.Stardew.ModBuildConfig` folder and run this command: - ```bash - nuget.exe pack - ``` - -That will create a `Pathoschild.Stardew.ModBuildConfig-<version>.nupkg` file in the same directory -which can be uploaded to NuGet or referenced directly. +The NuGet package is generated automatically in `StardewModdingAPI.ModBuildConfig`'s `bin` folder +when you compile it. ## Release notes +## Upcoming release +* Reworked and streamlined how the package is compiled. + ### 3.2.1 Released 11 September 2020. diff --git a/src/SMAPI.ModBuildConfig/SMAPI.ModBuildConfig.csproj b/src/SMAPI.ModBuildConfig/SMAPI.ModBuildConfig.csproj index 605096d9..ec810dd1 100644 --- a/src/SMAPI.ModBuildConfig/SMAPI.ModBuildConfig.csproj +++ b/src/SMAPI.ModBuildConfig/SMAPI.ModBuildConfig.csproj @@ -1,10 +1,27 @@ <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> + <!--build--> <RootNamespace>StardewModdingAPI.ModBuildConfig</RootNamespace> - <Version>3.2.1</Version> <TargetFramework>net45</TargetFramework> <PlatformTarget>x86</PlatformTarget> - <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath> + <LangVersion>latest</LangVersion> + <GeneratePackageOnBuild>true</GeneratePackageOnBuild> + + <!--NuGet package--> + <PackageId>Pathoschild.Stardew.ModBuildConfig</PackageId> + <Title>Build package for SMAPI mods</Title> + <Version>3.2.1</Version> + <Authors>Pathoschild</Authors> + <Description>Automates the build configuration for crossplatform Stardew Valley SMAPI mods. For SMAPI 3.0 or later.</Description> + <PackageLicenseExpression>MIT</PackageLicenseExpression> + <PackageIcon>images/icon.png</PackageIcon> + <PackageProjectUrl>https://smapi.io/package/readme</PackageProjectUrl> + <PackageReleaseNotes> + 3.2.1: + - Added more detailed logging. + - Fixed "path's format is not supported" error when using default Mods path in 3.2. + </PackageReleaseNotes> + <IncludeBuildOutput>false</IncludeBuildOutput> </PropertyGroup> <ItemGroup> @@ -16,16 +33,22 @@ </ItemGroup> <ItemGroup> - <ProjectReference Include="..\SMAPI.Toolkit\SMAPI.Toolkit.csproj" /> + <ProjectReference Include="..\SMAPI.Toolkit\SMAPI.Toolkit.csproj" PrivateAssets="All" /> </ItemGroup> <ItemGroup> - <None Include="..\..\build\find-game-folder.targets" Link="build\find-game-folder.targets" /> + <!--project files--> <None Include="..\..\docs\technical\mod-package.md" Link="mod-package.md" /> - <None Update="assets\nuget-icon.png" CopyToOutputDirectory="PreserveNewest" /> + + <!--NuGet package files--> + <None PackagePath="analyzers/dotnet/cs" Include="$(SolutionDir)/SMAPI.ModBuildConfig.Analyzer/bin/netstandard2.0/SMAPI.ModBuildConfig.Analyzer.dll" Pack="true" Visible="false" /> + <None PackagePath="build/" Include="..\..\build\find-game-folder.targets" Link="build/find-game-folder.targets" Pack="true" /> + <None PackagePath="build/" Include="$(OutputPath)\Newtonsoft.Json.dll" Pack="true" Visible="false" /> + <None PackagePath="build/" Include="$(OutputPath)\SMAPI.Toolkit.dll" Pack="true" Visible="false" /> + <None PackagePath="build/" Include="$(OutputPath)\SMAPI.Toolkit.CoreInterfaces.dll" Pack="true" Visible="false" /> + <None PackagePath="build/SMAPI.ModBuildConfig.dll" Include="$(OutputPath)\$(AssemblyName).dll" Pack="true" Visible="false" /> + <None PackagePath="build/Pathoschild.Stardew.ModBuildConfig.targets" Include="build\smapi.targets" Pack="true" /> + <None PackagePath="images/icon.png" Include="assets\nuget-icon.png" Pack="true" /> </ItemGroup> - <Import Project="..\SMAPI.Internal\SMAPI.Internal.projitems" Label="Shared" /> - <Import Project="..\..\build\common.targets" /> - <Import Project="..\..\build\prepare-nuget-package.targets" /> </Project> diff --git a/src/SMAPI.ModBuildConfig/package.nuspec b/src/SMAPI.ModBuildConfig/package.nuspec deleted file mode 100644 index 05aed8f9..00000000 --- a/src/SMAPI.ModBuildConfig/package.nuspec +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd"> - <metadata> - <id>Pathoschild.Stardew.ModBuildConfig</id> - <version>3.2.1</version> - <title>Build package for SMAPI mods</title> - <authors>Pathoschild</authors> - <owners>Pathoschild</owners> - <requireLicenseAcceptance>false</requireLicenseAcceptance> - <license type="expression">MIT</license> - <repository type="git" url="https://github.com/Pathoschild/SMAPI" /> - <projectUrl>https://smapi.io/package/readme</projectUrl> - <icon>images\icon.png</icon> - <iconUrl>https://raw.githubusercontent.com/Pathoschild/SMAPI/develop/src/SMAPI.ModBuildConfig/assets/nuget-icon.png</iconUrl> - <description>Automates the build configuration for crossplatform Stardew Valley SMAPI mods. For SMAPI 3.0 or later.</description> - <releaseNotes> - 3.2.1: - - Added more detailed logging. - - Fixed "path's format is not supported" error when using default Mods path in 3.2. - </releaseNotes> - </metadata> - <files> - <file src="analyzers\**" target="analyzers" /> - <file src="build\**" target="build" /> - <file src="images\**" target="images" /> - </files> -</package> diff --git a/src/SMAPI.sln b/src/SMAPI.sln index 92b0cd2c..aaf4d374 100644 --- a/src/SMAPI.sln +++ b/src/SMAPI.sln @@ -29,7 +29,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{09CF91E5 ..\build\common.targets = ..\build\common.targets ..\build\find-game-folder.targets = ..\build\find-game-folder.targets ..\build\prepare-install-package.targets = ..\build\prepare-install-package.targets - ..\build\prepare-nuget-package.targets = ..\build\prepare-nuget-package.targets EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{EB35A917-67B9-4EFA-8DFC-4FB49B3949BB}" @@ -81,7 +80,6 @@ Global GlobalSection(SharedMSBuildProjectFiles) = preSolution SMAPI.Internal\SMAPI.Internal.projitems*{0634ea4c-3b8f-42db-aea6-ca9e4ef6e92f}*SharedItemsImports = 5 SMAPI.Internal\SMAPI.Internal.projitems*{0a9bb24f-15ff-4c26-b1a2-81f7ae316518}*SharedItemsImports = 5 - SMAPI.Internal\SMAPI.Internal.projitems*{1b3821e6-d030-402c-b3a1-7ca45c2800ea}*SharedItemsImports = 5 SMAPI.Internal\SMAPI.Internal.projitems*{80efd92f-728f-41e0-8a5b-9f6f49a91899}*SharedItemsImports = 5 SMAPI.Internal\SMAPI.Internal.projitems*{85208f8d-6fd1-4531-be05-7142490f59fe}*SharedItemsImports = 13 SMAPI.Internal\SMAPI.Internal.projitems*{cd53ad6f-97f4-4872-a212-50c2a0fd3601}*SharedItemsImports = 5 |