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

From RimWorld Wiki
Jump to navigation Jump to search
(→‎Sharpdevelop: Repeated instructions to finding the compiling tab (user was confused))
m (Making edits as I go through tutorial to make it easier for next person. -Copy to out replaced with Copy to output, a)
Line 26: Line 26:
 
## In the References folder, right-click Assembly-CSharp -> Properties and change "Local copy" to False. Do the same for UnityEngine,
 
## In the References folder, right-click Assembly-CSharp -> Properties and change "Local copy" to False. Do the same for UnityEngine,
 
# In your project properties, change the target framework to .NET 3.5:
 
# In your project properties, change the target framework to .NET 3.5:
## In your IDE project file browser, right-click "Solution (YourSolutionName)" or just "(YourSolutionName)";
+
## In your IDE project file browser, right-click "(YourSolutionName)";
 
## Choose Properties;
 
## Choose Properties;
 
## Go to the "Compiling" tab, "Output", "Target framework", "Change" and choose ".NET Framework 3.5",
 
## Go to the "Compiling" tab, "Output", "Target framework", "Change" and choose ".NET Framework 3.5",
 
# In your project properties, change the build events so only a single file is built:
 
# In your project properties, change the build events so only a single file is built:
 
## Go to the "Compiling" tab, "Output", "Debug info" and choose "No debug information";
 
## Go to the "Compiling" tab, "Output", "Debug info" and choose "No debug information";
## Right-click your .cs files -> Properties and change "Copy to out" to Never,
+
## Right-click your .cs files -> Properties and change "Copy to output" (If you haven't resized the properties bar, this will be truncated to "Copy to out") to Never,
 
# 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:
 
## Go to the "Compiling" tab, "Output", "Output path" and change the output path to "..\..\Assemblies\".<br/><br/>
 
## Go to the "Compiling" tab, "Output", "Output path" and change the output path to "..\..\Assemblies\".<br/><br/>

Revision as of 15:39, 10 April 2017

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 "(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. Go to the "Compiling" tab, "Output", "Debug info" and choose "No debug information";
    2. Right-click your .cs files -> Properties and change "Copy to output" (If you haven't resized the properties bar, this will be truncated to "Copy to out") to Never,
  5. In your project properties, fix the output location to put the DLL in the Assemblies folder:
    1. Go to the "Compiling" tab, "Output", "Output path" and 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