summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/mod-build-config.md16
-rw-r--r--src/SMAPI.ModBuildConfig/build/smapi.targets34
-rw-r--r--src/SMAPI.ModBuildConfig/package.nuspec2
3 files changed, 25 insertions, 27 deletions
diff --git a/docs/mod-build-config.md b/docs/mod-build-config.md
index 32762580..0c1cc10a 100644
--- a/docs/mod-build-config.md
+++ b/docs/mod-build-config.md
@@ -131,18 +131,20 @@ If you don't want to include a file in the mod folder or release zip:
This is a comma-delimited list of regular expression patterns. If any pattern matches a file's
relative path in your mod folder, that file won't be included.
-### Unit test projects
+### Non-mod projects
**(upcoming in 2.1)**
-You can use the package in unit test projects too. Its optional unit test mode...
+You can use the package in non-mod projects too (e.g. unit tests or framework DLLs). You'll need to
+disable deploying the mod and creating a release zip:
-1. disables deploying the project as a mod;
-2. disables creating a release zip;
-2. and copies the referenced DLLs into the build output for unit test frameworks.
+```xml
+<EnableModDeploy>False</EnableModDeploy>
+<EnableModZip>False</EnableModZip>
+```
-To enable it, add this above the first `</PropertyGroup>` in your `.csproj`:
+If this is for unit tests, you may need to copy the referenced DLLs into your build output too:
```xml
-<ModUnitTests>True</ModUnitTests>
+<CopyModReferencesToBuildOutput>True</CopyModReferencesToBuildOutput>
```
## Code warnings
diff --git a/src/SMAPI.ModBuildConfig/build/smapi.targets b/src/SMAPI.ModBuildConfig/build/smapi.targets
index f5691fec..8ca178cc 100644
--- a/src/SMAPI.ModBuildConfig/build/smapi.targets
+++ b/src/SMAPI.ModBuildConfig/build/smapi.targets
@@ -19,14 +19,10 @@
<!-- set default settings -->
<ModFolderName Condition="'$(ModFolderName)' == ''">$(MSBuildProjectName)</ModFolderName>
- <ModUnitTests Condition="'$(ModUnitTests)' == ''">False</ModUnitTests>
<ModZipPath Condition="'$(ModZipPath)' == ''">$(TargetDir)</ModZipPath>
<EnableModDeploy Condition="'$(EnableModDeploy)' == ''">True</EnableModDeploy>
<EnableModZip Condition="'$(EnableModZip)' == ''">True</EnableModZip>
-
- <!-- disable mod deploy in unit test project -->
- <EnableModDeploy Condition="'$(ModUnitTests)' == true">False</EnableModDeploy>
- <EnableModZip Condition="'$(ModUnitTests)' == true">False</EnableModZip>
+ <CopyModReferencesToBuildOutput Condition="'$(CopyModReferencesToBuildOutput)' == ''">False</CopyModReferencesToBuildOutput>
</PropertyGroup>
<!-- find platform + game path -->
@@ -63,45 +59,45 @@
<ItemGroup>
<Reference Include="Microsoft.Xna.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553, processorArchitecture=x86">
<Private>false</Private>
- <Private Condition="$(ModUnitTests)">true</Private>
+ <Private Condition="$(CopyModReferencesToBuildOutput)">true</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Game, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553, processorArchitecture=x86">
<Private>false</Private>
- <Private Condition="$(ModUnitTests)">true</Private>
+ <Private Condition="$(CopyModReferencesToBuildOutput)">true</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Graphics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553, processorArchitecture=x86">
<Private>false</Private>
- <Private Condition="$(ModUnitTests)">true</Private>
+ <Private Condition="$(CopyModReferencesToBuildOutput)">true</Private>
</Reference>
<Reference Include="Microsoft.Xna.Framework.Xact, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553, processorArchitecture=x86">
<Private>false</Private>
- <Private Condition="$(ModUnitTests)">true</Private>
+ <Private Condition="$(CopyModReferencesToBuildOutput)">true</Private>
</Reference>
<Reference Include="Netcode">
<HintPath>$(GamePath)\Netcode.dll</HintPath>
<Private>False</Private>
- <Private Condition="$(ModUnitTests)">true</Private>
+ <Private Condition="$(CopyModReferencesToBuildOutput)">true</Private>
</Reference>
<Reference Include="Stardew Valley">
<HintPath>$(GamePath)\Stardew Valley.exe</HintPath>
<Private>false</Private>
- <Private Condition="$(ModUnitTests)">true</Private>
+ <Private Condition="$(CopyModReferencesToBuildOutput)">true</Private>
</Reference>
<Reference Include="StardewModdingAPI">
<HintPath>$(GamePath)\StardewModdingAPI.exe</HintPath>
<Private>false</Private>
- <Private Condition="$(ModUnitTests)">true</Private>
+ <Private Condition="$(CopyModReferencesToBuildOutput)">true</Private>
</Reference>
<Reference Include="StardewModdingAPI.Toolkit.CoreInterfaces">
<HintPath>$(GamePath)\StardewModdingAPI.Toolkit.CoreInterfaces.dll</HintPath>
<Private>false</Private>
- <Private Condition="$(ModUnitTests)">true</Private>
+ <Private Condition="$(CopyModReferencesToBuildOutput)">true</Private>
</Reference>
<Reference Include="xTile, Version=2.0.4.0, Culture=neutral, processorArchitecture=x86">
<HintPath>$(GamePath)\xTile.dll</HintPath>
<Private>false</Private>
<SpecificVersion>False</SpecificVersion>
- <Private Condition="$(ModUnitTests)">true</Private>
+ <Private Condition="$(CopyModReferencesToBuildOutput)">true</Private>
</Reference>
</ItemGroup>
@@ -119,27 +115,27 @@
<HintPath>$(GamePath)\MonoGame.Framework.dll</HintPath>
<Private>false</Private>
<SpecificVersion>False</SpecificVersion>
- <Private Condition="$(ModUnitTests)">true</Private>
+ <Private Condition="$(CopyModReferencesToBuildOutput)">true</Private>
</Reference>
<Reference Include="StardewValley">
<HintPath>$(GamePath)\StardewValley.exe</HintPath>
<Private>false</Private>
- <Private Condition="$(ModUnitTests)">true</Private>
+ <Private Condition="$(CopyModReferencesToBuildOutput)">true</Private>
</Reference>
<Reference Include="StardewModdingAPI">
<HintPath>$(GamePath)\StardewModdingAPI.exe</HintPath>
<Private>false</Private>
- <Private Condition="$(ModUnitTests)">true</Private>
+ <Private Condition="$(CopyModReferencesToBuildOutput)">true</Private>
</Reference>
<Reference Include="StardewModdingAPI.Toolkit.CoreInterfaces">
<HintPath>$(GamePath)\StardewModdingAPI.Toolkit.CoreInterfaces.dll</HintPath>
<Private>false</Private>
- <Private Condition="$(ModUnitTests)">true</Private>
+ <Private Condition="$(CopyModReferencesToBuildOutput)">true</Private>
</Reference>
<Reference Include="xTile">
<HintPath>$(GamePath)\xTile.dll</HintPath>
<Private>false</Private>
- <Private Condition="$(ModUnitTests)">true</Private>
+ <Private Condition="$(CopyModReferencesToBuildOutput)">true</Private>
</Reference>
</ItemGroup>
</Otherwise>
diff --git a/src/SMAPI.ModBuildConfig/package.nuspec b/src/SMAPI.ModBuildConfig/package.nuspec
index 68746648..cb6e41e1 100644
--- a/src/SMAPI.ModBuildConfig/package.nuspec
+++ b/src/SMAPI.ModBuildConfig/package.nuspec
@@ -14,7 +14,7 @@
<releaseNotes>
2.1:
- Added support for Stardew Valley 1.3.
- - Added support for unit test projects.
+ - Added support for non-mod projects.
- Added C# analyzers to warn about implicit conversions of Netcode fields in Stardew Valley 1.3.
- Added option to ignore files by regex pattern.
- Added reference to new SMAPI DLL.