summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorJesse Plamondon-Willard <github@jplamondonw.com>2017-06-05 15:24:53 -0400
committerJesse Plamondon-Willard <github@jplamondonw.com>2017-06-05 17:45:05 -0400
commitffc339bc29a9b4b08d53a5d147546630116d82d7 (patch)
tree39746b67020b69b2d2915a91303d5fc0d0ecdaf0 /README.md
parent66b1b583e5233a4b50b832733d8e2cbc329a70be (diff)
downloadSMAPI-ffc339bc29a9b4b08d53a5d147546630116d82d7.tar.gz
SMAPI-ffc339bc29a9b4b08d53a5d147546630116d82d7.tar.bz2
SMAPI-ffc339bc29a9b4b08d53a5d147546630116d82d7.zip
add support for deploying mods to game folder automatically
Diffstat (limited to 'README.md')
-rw-r--r--README.md50
1 files changed, 26 insertions, 24 deletions
diff --git a/README.md b/README.md
index 351ebd91..115711f3 100644
--- a/README.md
+++ b/README.md
@@ -32,34 +32,36 @@ The package...
3. Compile on any platform.
## Simplify mod development
-### Package your mod into the game directory automatically
-During development, it's helpful to have the mod files packaged into your `Mods` directory automatically each time you build. To do that:
+### Package your mod into the game folder automatically
+You can copy your mod files into the `Mods` folder automatically each time you build, so you don't
+need to do it manually:
1. Edit your mod's `.csproj` file.
-2. Add this block of code at the bottom, right above the closing `</Project>` tag:
-
- ```xml
- <Target Name="AfterBuild">
- <PropertyGroup>
- <ModPath>$(GamePath)\Mods\$(TargetName)</ModPath>
- </PropertyGroup>
- <Copy SourceFiles="$(TargetDir)\$(TargetName).dll" DestinationFolder="$(ModPath)" />
- <Copy SourceFiles="$(TargetDir)\$(TargetName).pdb" DestinationFolder="$(ModPath)" Condition="Exists('$(TargetDir)\$(TargetName).pdb')" />
- <Copy SourceFiles="$(TargetDir)\$(TargetName).dll.mdb" DestinationFolder="$(ModPath)" Condition="Exists('$(TargetDir)\$(TargetName).dll.mdb')" />
- <Copy SourceFiles="$(ProjectDir)manifest.json" DestinationFolder="$(ModPath)" />
- </Target>
- ```
-3. Optionally, edit the `<ModPath>` value to change the name, or add any additional files your mod needs.
-
-That's it! Each time you build, the files in `<game path>\Mods\<mod name>` will be updated.
+2. Add this block under the `<Project` line:
+
+ ```xml
+ <PropertyGroup>
+ <DeployModFolderName>$(MSBuildProjectName)</DeployModFolderName>
+ </PropertyGroup>
+ ```
+
+That's it! Each time you build, the files in `<game path>\Mods\<mod name>` will be updated with
+your `manifest.json`, build output, and any `i18n` files.
+
+Notes:
+* To add custom files, just [add them to the build output](https://stackoverflow.com/a/10828462/262123).
+* To customise the folder name, just replace `$(MSBuildProjectName)` with the folder name you want.
+* If your project references another mod, make sure the reference is [_not_ marked 'copy local'](https://msdn.microsoft.com/en-us/library/t1zz5y8c(v=vs.100).aspx).
### Debug into the mod code
-Stepping into your mod code when the game is running is straightforward, since this package injects the configuration automatically. To do it:
+Stepping into your mod code when the game is running is straightforward, since this package injects
+the configuration automatically. To do it:
-1. [Package your mod into the game directory automatically](#package-your-mod-into-the-game-directory-automatically).
+1. [Package your mod into the game folder automatically](#package-your-mod-into-the-game-folder-automatically).
2. Launch the project with debugging in Visual Studio or MonoDevelop.
-This will deploy your mod files into the game directory, launch SMAPI, and attach a debugger automatically. Now you can step through your code, set breakpoints, etc.
+This will deploy your mod files into the game folder, launch SMAPI, and attach a debugger
+automatically. Now you can step through your code, set breakpoints, etc.
## Troubleshoot
### "Failed to find the game install path"
@@ -89,9 +91,6 @@ the game location yourself. There's two ways to do that:
4. Replace `PATH_HERE` with your custom game install path.
-The configuration will check your custom path first, then fall back to the default paths (so it'll
-still compile on a different computer).
-
* **Option 2: set the path in the project file.**
_(You'll need to do it for every project that uses the package.)_
1. Get the folder path containing the Stardew Valley `.exe` file.
@@ -105,5 +104,8 @@ still compile on a different computer).
3. Replace `PATH_HERE` with your custom game install path.
+The configuration will check your custom path first, then fall back to the default paths (so it'll
+still compile on a different computer).
+
## Versions
See [release notes](release-notes.md).