Modding Tutorials/Setting up a solution

From RimWorld Wiki
Revision as of 19:50, 2 November 2015 by Alistaire (talk | contribs) (→‎Setting up a solution: Note on the method being different for other IDEs)
Jump to navigation Jump to search

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. Copy these files:
      (RimWorldInstallFolder)/RimWorld_Data/Managed/Assembly-CSharp.dll
      (RimWorldInstallFolder)/RimWorld_Data/Managed/UnityEngine.dll
    2. Place them in your project:
      (RimWorldInstallFolder)/Mods/(YourModName)/Source/(YourSolutionName)/Source-DLLs
    3. In your IDE project file browser, right-click the "References" folder and "Add reference";
    4. Choose the ".NET Assembly Browser" tab and "Browse", go to the folder you placed the copied DLLs;
    5. Choose both DLLs and click OK,
  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. In the References folder, right-click Assembly-CSharp -> Properties and change "Local copy" to False. Do the same for UnityEngine;
    3. 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\".

See also