Difference between revisions of "Modding Tutorials/Setting up a solution"

From RimWorld Wiki
Jump to navigation Jump to search
(→‎Sharpdevelop: Updated to not include the Source-DLLs folder)
m
Line 34: Line 34:
 
# In your project properties, fix the output location to put the DLL in the Assemblies folder:
 
# In your project properties, fix the output location to put the DLL in the Assemblies folder:
 
## Change the output path to "..\..\Assemblies\".<br/><br/>
 
## Change the output path to "..\..\Assemblies\".<br/><br/>
 +
 +
===Xamarin===
 +
The setup is similar as the one above. A few special points to address:
 +
# Mono 4.X isn't backward compatible so you may need to install an older 3.X version of Mono in order to compile against .NET3.5 dlls.
 +
# Make sure you uncheck "Use MSBuild build engine (recommended for this project type)" under project > options > build > general
  
 
=See also=
 
=See also=

Revision as of 12:58, 23 June 2016

Modding Tutorials

This page was originally created by Alistaire.

In this tutorial you will learn how to set up a solution, along with instructions on setting the output directory and files for more convenient building right into the Assemblies folder.

Requirements

Setting up a solution

Setting up can be different for different IDE's. Feel free to add complete instructions for your IDE of choice.

Sharpdevelop

  1. Create a new class library project in your IDE of choice;
    1. Go to File -> New -> Solution;
    2. Go to C# or .NET -> Library or Class Library (NOT portable);
    3. Enter a project name (solution name automatically updated);
    4. Choose a location, preferably:
      (RimWorldInstallFolder)/Mods/(YourModName)/Source
    5. Optional: Untick "Create a directory for solution"/"Create a project within the solution directory",
  2. In your project, add references to Assembly-CSharp.dll and UnityEngine.dll:
    1. In your IDE project file browser, right-click the "References" folder and "Add reference";
    2. Choose the ".NET Assembly Browser" tab and "Browse...";
    3. Navigate towards
      RimWorld******/RimWorld******_Data/Managed
      and select files:
      Assembly-CSharp.dll
      UnityEngine.dll
    4. Click "Open" then "OK";
    5. In the References folder, right-click Assembly-CSharp -> Properties and change "Local copy" to False. Do the same for UnityEngine,
  3. In your project properties, change the target framework to .NET 3.5:
    1. In your IDE project file browser, right-click "Solution (YourSolutionName)" or just "(YourSolutionName)";
    2. Choose Properties;
    3. Go to the "Compiling" tab, "Output", "Target framework", "Change" and choose ".NET Framework 3.5",
  4. In your project properties, change the build events so only a single file is built:
    1. Change the debug info to "No debug information";
    2. Right-click your .cs files -> Properties and change "Copy to out" to Never,
  5. In your project properties, fix the output location to put the DLL in the Assemblies folder:
    1. Change the output path to "..\..\Assemblies\".

Xamarin

The setup is similar as the one above. A few special points to address:

  1. Mono 4.X isn't backward compatible so you may need to install an older 3.X version of Mono in order to compile against .NET3.5 dlls.
  2. Make sure you uncheck "Use MSBuild build engine (recommended for this project type)" under project > options > build > general

See also