Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
4a1a897
Rename properties to avoid namespace collisions, add more toggles
drewcassidy Jul 13, 2025
5fa2acd
fix syntax error
drewcassidy Jul 13, 2025
08ad322
Fix logic error double-importing system assemblies
drewcassidy Jul 14, 2025
31852ae
move references back where they belong, fix whitespace
drewcassidy Jul 14, 2025
b7d6a48
Fix tests
drewcassidy Jul 14, 2025
e2b205e
fix project path/name variables
drewcassidy Jul 14, 2025
cdc5ef6
fix test mod roots
drewcassidy Jul 14, 2025
ce6db03
oops
drewcassidy Jul 14, 2025
1c41d5f
Rename properties to begin with KSPBT
drewcassidy Jul 14, 2025
769b65e
add ability to declare mod dependencies with ModReference items
drewcassidy Jul 15, 2025
0b68619
Update changelog to reflect recent changes
drewcassidy Jul 16, 2025
96c6a69
Move references back to the targets file
drewcassidy Jul 16, 2025
a2a8bd1
Fix some bugs with CKAN install and tests
drewcassidy Jul 16, 2025
bd0a6ec
try something
drewcassidy Jul 18, 2025
e5bceff
add an sln
drewcassidy Jul 19, 2025
c68f3f1
More property renames and additions
drewcassidy Jul 20, 2025
81a8f40
fix ckan run target
drewcassidy Jul 21, 2025
65e7e78
fix ckan compatibility list in command
drewcassidy Jul 21, 2025
0898ecf
oops
drewcassidy Jul 21, 2025
b29fd6c
oops 2
drewcassidy Jul 21, 2025
159ae13
try something
drewcassidy Jul 21, 2025
9935d48
Try another thing
drewcassidy Jul 21, 2025
899869e
WHY
drewcassidy Jul 21, 2025
13c6577
OH NO
drewcassidy Jul 21, 2025
d809f3d
starting to understand this...
drewcassidy Jul 21, 2025
ede1af6
?
drewcassidy Jul 21, 2025
3d9007e
can I do this now?
drewcassidy Jul 21, 2025
1a2a80b
this might be cleaner?
drewcassidy Jul 21, 2025
0b82269
Try it out on more dotnet versions
drewcassidy Jul 21, 2025
cf333d2
move the last of the GameRoot logic to targets
drewcassidy Jul 22, 2025
a58bf43
Fix target dependency chain
drewcassidy Jul 22, 2025
72e8819
Move tests to ModReferences
drewcassidy Jul 22, 2025
105cc15
Make the stdlib avoidance thing conditional
drewcassidy Jul 24, 2025
b08da4a
Add default settings for the `Unity` configuration
drewcassidy Jul 24, 2025
cc7b850
Write more docs
drewcassidy Jul 24, 2025
7ec5f4d
Allow per-dependency disabling of attribute generation
drewcassidy Aug 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/actions/compile/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,5 +76,5 @@ runs:
working-directory: ${{ inputs.working-directory }}
run: |
dotnet msbuild -p:Configuration=${{ inputs.build-configuration }} \
-p:ManagedRelativePath=KSP_x64_Data/Managed ${{ inputs.solution-file-path }} \
${{ runner.debug && '-v:detailed' }}
-p:KSPBT_ManagedRelativePath=KSP_x64_Data/Managed ${{ inputs.solution-file-path }} \
${{ runner.debug && '-v:diagnostic' }}
9 changes: 7 additions & 2 deletions .github/workflows/internal-test-plugin-nuget.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,11 @@ env:
NuGetDirectory: ${{ github.workspace}}/nuget

jobs:

build:
strategy:
matrix:
dotnet-version: [ 5.x, 7.x, 9.x ]
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
Expand All @@ -39,11 +43,12 @@ jobs:
with:
ksp-zip-url: https://github.com/KSPModdingLibs/KSPLibs/raw/main/KSP-1.12.5.zip
working-directory: ${{ env.TESTDIR }}
solution-file-path: plugin-mod.csproj
solution-file-path: plugin-mod-nuget.csproj
dotnet-version: ${{ matrix.dotnet-version }}
env:
KSPBuildToolsVersion: ${{ inputs.package-version }}

- uses: ./.github/actions/assemble-release
with:
artifacts: ${{ env.TESTDIR }}/GameData
output-file-name: plugin-mod-nuget
output-file-name: plugin-mod-nuget-${{ matrix.dotnet-version }}
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@
bin
obj
*.nupkg
packages

# docs
docs/_build

# misc
.DS_Store
.idea
*.user
19 changes: 19 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,25 @@

All notable changes to this project will be documented in this file

## Unreleased

### Msbuild

- Renamed global msbuild properties to have the `KSPBT_` prefix to avoid namespace collisions with other frameworks
- `KSPRoot` is now `KSPBT_GameRoot`. It should no longer be referenced within a .csproj file
- `RepoRootPath` is now `KSPBT_ModRoot`, and should now point to the mod folder within GameData rather than the
root of a git repo
- `BinariesOutputRelativePath` is now `KSPBT_ModPluginFolder`
- `GenerateKSPAssemblyAttribute` is now `KSPBT_GenerateAssemblyAttribute` and defaults to true
- `GenerateKSPAssemblyDependencyAttributes` is now `KSPBT_GenerateDependencyAttributes` and defaults to true
- `ReferenceUnityAssemblies` is now `KSPBT_ReferenceUnityAssemblies`
- `ReferenceKSPAssemblies` is now `KSPBT_ReferenceGameAssemblies`
- Added the `KSPBT_ReferenceSystemAssemblies` property to control referencing the mono system DLLs within the KSP
managed folder. Setting this property to false will load the implicit framework DLLs instead.
- Mod dependencies should now be declared with
`ModReference` items. This avoids the need for the KSP install path to be known at evaluation time.


## 0.0.4 - 2025-06-15

### Library
Expand Down
2 changes: 1 addition & 1 deletion KSPBuildTools.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
<NoWarn>1701;1702;CS0649;CS1591;NU5128</NoWarn>
<AssemblyCopyright>2024 KSPModdingLibs Contributors</AssemblyCopyright>
<AssemblyName>KSPBuildTools</AssemblyName>
<RepoRootPath>$(ProjectDir)</RepoRootPath>
<KSPBT_ModRoot>$(ProjectDir)</KSPBT_ModRoot>
<PackageId>KSPBuildTools</PackageId>
<PackageReadmeFile>README.md</PackageReadmeFile>
<Title>KSP Build Tools</Title>
Expand Down
34 changes: 34 additions & 0 deletions KSPBuildTools.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@

Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KSPBuildTools", "KSPBuildTools.csproj", "{F5D90A2D-BF85-4849-9A1B-AD53EE814149}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "plugin-mod-legacy", "tests\plugin-mod-legacy\PluginModLegacy\plugin-mod-legacy.csproj", "{F19C7AB4-50C2-4378-9673-CC039CA12E10}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "plugin-mod-nuget", "tests\plugin-mod-nuget\plugin-mod-nuget.csproj", "{4F531716-DB82-4AD4-8270-DFB32EE18A41}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "plugin-mod", "tests\plugin-mod\plugin-mod.csproj", "{F0E30935-74A7-446F-A30C-5D1D0E525EC5}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{F5D90A2D-BF85-4849-9A1B-AD53EE814149}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F5D90A2D-BF85-4849-9A1B-AD53EE814149}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F5D90A2D-BF85-4849-9A1B-AD53EE814149}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F5D90A2D-BF85-4849-9A1B-AD53EE814149}.Release|Any CPU.Build.0 = Release|Any CPU
{F19C7AB4-50C2-4378-9673-CC039CA12E10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F19C7AB4-50C2-4378-9673-CC039CA12E10}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F19C7AB4-50C2-4378-9673-CC039CA12E10}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F19C7AB4-50C2-4378-9673-CC039CA12E10}.Release|Any CPU.Build.0 = Release|Any CPU
{4F531716-DB82-4AD4-8270-DFB32EE18A41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4F531716-DB82-4AD4-8270-DFB32EE18A41}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4F531716-DB82-4AD4-8270-DFB32EE18A41}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4F531716-DB82-4AD4-8270-DFB32EE18A41}.Release|Any CPU.Build.0 = Release|Any CPU
{F0E30935-74A7-446F-A30C-5D1D0E525EC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F0E30935-74A7-446F-A30C-5D1D0E525EC5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F0E30935-74A7-446F-A30C-5D1D0E525EC5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F0E30935-74A7-446F-A30C-5D1D0E525EC5}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal
189 changes: 63 additions & 126 deletions KSPCommon.props
Original file line number Diff line number Diff line change
Expand Up @@ -4,155 +4,92 @@
<KSPCommonPropsImported>true</KSPCommonPropsImported>
</PropertyGroup>

<!-- disable default .net framework imports; use the ones from KSP instead. There are a few differences that are sometimes important. -->
<PropertyGroup>
<DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>
</PropertyGroup>
<!-- default settings for when building for Unity-->
<PropertyGroup Condition=" '$(Configuration)' == 'Unity' ">
<!-- Dont KSP and mod assemblies -->
<KSPBT_ReferenceGameAssemblies Condition=" '$(KSPBT_ReferenceGameAssemblies)' == '' ">false</KSPBT_ReferenceGameAssemblies>
<KSPBT_ReferenceModAssemblies Condition=" '$(KSPBT_ReferenceModAssemblies)' == '' ">false</KSPBT_ReferenceModAssemblies>

<!--reference unity and KSP assemblies unless explicitly disabled-->
<PropertyGroup>
<ReferenceUnityAssemblies Condition=" '$(ReferenceUnityAssemblies)' == '' ">true</ReferenceUnityAssemblies>
<ReferenceKSPAssemblies Condition=" '$(ReferenceKSPAssemblies)' == '' ">true</ReferenceKSPAssemblies>
</PropertyGroup>
<!-- Dont install mod dependencies from CKAN (they wont be referenced anyways) -->
<KSPBT_InstallCKANDependencies Condition=" '$(KSPBT_InstallCKANDependencies)' == '' ">false</KSPBT_InstallCKANDependencies>

<!-- default CKAN compatibility versions -->
<PropertyGroup>
<CKANCompatibleVersions Condition="('$(CKANCompatibleVersions)' == '')">1.12 1.11 1.10 1.9 1.8</CKANCompatibleVersions>
</PropertyGroup>
<!-- Dont generate attributes since they depend on the KSP Assembly_Csharp.dll -->
<KSPBT_GenerateAssemblyAttribute Condition=" '$(KSPBT_GenerateAssemblyAttribute)' == '' ">false</KSPBT_GenerateAssemblyAttribute>
<KSPBT_GenerateDependencyAttributes Condition=" '$(KSPBT_GenerateDependencyAttributes)' == '' ">false</KSPBT_GenerateDependencyAttributes>

<!--Parse KSP platform-specific paths -->
<!-- These can be overwritten by user and props files -->
<PropertyGroup Condition=" '$(ManagedRelativePath)' == '' ">
<ManagedRelativePath Condition="$([MSBuild]::IsOsPlatform('Windows'))">KSP_x64_Data\Managed</ManagedRelativePath>
<ManagedRelativePath Condition="$([MSBuild]::IsOsPlatform('OSX'))">KSP.app\Contents\Resources\Data\Managed</ManagedRelativePath>
<ManagedRelativePath Condition="$([MSBuild]::IsOsPlatform('Linux'))">KSP_Data\Managed</ManagedRelativePath>
</PropertyGroup>
<PropertyGroup>
<KSPExecutable Condition="$([MSBuild]::IsOsPlatform('Windows'))">KSP_x64.exe</KSPExecutable>
<KSPExecutable Condition="$([MSBuild]::IsOsPlatform('OSX'))">KSP.app/Contents/MacOS/KSP</KSPExecutable>
<KSPExecutable Condition="$([MSBuild]::IsOsPlatform('Linux'))">KSP.x86_64</KSPExecutable>
<SteamKSPRoot Condition="($([MSBuild]::IsOsPlatform('Windows')))">C:\Program Files (x86)\Steam\steamapps\common\Kerbal Space Program</SteamKSPRoot>
<SteamKSPRoot Condition="($([MSBuild]::IsOsPlatform('OSX')))">$(HOME)/Library/Application Support/Steam/steamapps/common/Kerbal Space Program</SteamKSPRoot>
<!-- Dont copy DLLs to mod folder, since theyre not the full mod-->
<KSPBT_CopyDLLsToPluginFolder Condition=" '$(KSPBT_CopyDLLsToPluginFolder)' == '' ">false</KSPBT_CopyDLLsToPluginFolder>

<!-- Dont generate a version file -->
<KSPBT_GenerateVersionFile Condition=" '$(KSPBT_GenerateVersionFile)' == '' ">false</KSPBT_GenerateVersionFile>
</PropertyGroup>

<!-- Calculate mod paths -->
<!-- These can be overwritten by user, csproj, and props files -->
<!-- default settings when building normally -->
<PropertyGroup>
<!-- The root directory of the mod repository -->
<RepoRootPath Condition=" '$(RepoRootPath)' == '' ">$(SolutionDir.TrimEnd([System.IO.Path]::DirectorySeparatorChar))</RepoRootPath>
<BinariesOutputRelativePath Condition=" '$(BinariesOutputRelativePath)' == '' ">GameData/$(SolutionName)</BinariesOutputRelativePath>
</PropertyGroup>
<!-- The root directory of the mod, the folder that gets placed in GameData -->
<KSPBT_ModRoot Condition=" '$(KSPBT_ModRoot)' == '' ">$(MSBuildProjectDirectory)/../GameData/$(MSBuildProjectName)/</KSPBT_ModRoot>

<!-- Import the csproj.user file. -->
<!-- This can overwrite ManagedRelativePath and KSPExecutable,
set KSPRoot and ReferencePath, and any other user-specific settings -->
<Import Project="$(MSBuildProjectFullPath).user" Condition="Exists('$(MSBuildProjectFullPath).user')"/>
<!-- The folder to place resulting DLLs into, relative to KSPBT_ModRoot -->
<KSPBT_ModPluginFolder Condition=" '$(KSPBT_ModPluginFolder)' == '' "/>

<!-- Import a props.user file -->
<!-- serves the same role as the csproj.user file -->
<Import Condition=" Exists('$(SolutionDir)$(SolutionName).props.user') " Project="$(SolutionDir)$(SolutionName).props.user"/>
<!-- default CKAN compatibility versions -->
<KSPBT_CKANCompatibleVersions Condition=" '$(KSPBT_CKANCompatibleVersions)' == '' ">1.12 1.11 1.10 1.9 1.8</KSPBT_CKANCompatibleVersions>

<!-- Import solution-wide props if it exists -->
<Import Condition=" Exists('$(SolutionDir)$(SolutionName).props') " Project="$(SolutionDir)$(SolutionName).props"/>
<!-- reference system, unity, KSP, and dependency mod assemblies -->
<KSPBT_ReferenceSystemAssemblies Condition=" '$(KSPBT_ReferenceSystemAssemblies)' == '' ">true</KSPBT_ReferenceSystemAssemblies>
<KSPBT_ReferenceUnityAssemblies Condition=" '$(KSPBT_ReferenceUnityAssemblies)' == '' ">true</KSPBT_ReferenceUnityAssemblies>
<KSPBT_ReferenceGameAssemblies Condition=" '$(KSPBT_ReferenceGameAssemblies)' == '' ">true</KSPBT_ReferenceGameAssemblies>
<KSPBT_ReferenceModAssemblies Condition=" '$(KSPBT_ReferenceModAssemblies)' == '' ">true</KSPBT_ReferenceModAssemblies>

<PropertyGroup>
<!-- Relative path that must exist for a path to be a valid KSP Install-->
<KSPRootIdentifier>$(ManagedRelativePath)/Assembly-CSharp.dll</KSPRootIdentifier>
<KSPRootSource Condition="'$(KSPRoot)' != ''">property</KSPRootSource>
</PropertyGroup>
<!-- Install all dependency mods from CKAN -->
<KSPBT_InstallCKANDependencies Condition=" '$(KSPBT_InstallCKANDependencies)' == '' ">true</KSPBT_InstallCKANDependencies>

<PropertyGroup Condition=" '$(KSPRoot)' == '' And '$(KSP_ROOT)' != '' ">
<!-- Default KSPRoot to the "KSP_ROOT" environment variable if it exists -->
<!-- Doing this skips any checks for a valid KSP install so be careful! -->
<KSPRoot >$(KSP_ROOT)</KSPRoot>
<KSPRootSource>environment variable</KSPRootSource>
</PropertyGroup>
<ItemGroup>
<KSPRootCandidate Include="$(SolutionDir)KSP" source="solution directory"/>
<KSPRootCandidate Include="$(ReferencePath)" source="reference path"/>
<KSPRootCandidate Include="$(SteamKSPRoot)" source="steam"/>
</ItemGroup>
<!-- Generate KSP assembly and dependency attributes for the assembly -->
<KSPBT_GenerateAssemblyAttribute Condition=" '$(KSPBT_GenerateAssemblyAttribute)' == '' ">true</KSPBT_GenerateAssemblyAttribute>
<KSPBT_GenerateDependencyAttributes Condition=" '$(KSPBT_GenerateDependencyAttributes)' == '' ">true</KSPBT_GenerateDependencyAttributes>

<PropertyGroup Condition=" '$(KSPRoot)' == '' And Exists('$(SolutionDir)KSP/$(KSPRootIdentifier)') ">
<!-- Look for KSP install in Solution dir -->
<KSPRoot >$(SolutionDir)KSP</KSPRoot>
<KSPRootSource>solution directory</KSPRootSource>
</PropertyGroup>
<!-- Copy DLLs to mod folder -->
<KSPBT_CopyDLLsToPluginFolder Condition=" '$(KSPBT_CopyDLLsToPluginFolder)' == '' ">true</KSPBT_CopyDLLsToPluginFolder>

<PropertyGroup Condition=" '$(KSPRoot)' == '' And Exists('$(ReferencePath)/$(KSPRootIdentifier)') ">
<!-- Look for KSP install in ReferencePath -->
<KSPRoot>$(ReferencePath)</KSPRoot>
<KSPRootSource>reference path</KSPRootSource>
<KSPBT_GenerateVersionFile Condition=" '$(KSPBT_GenerateVersionFile)' == '' ">true</KSPBT_GenerateVersionFile>
</PropertyGroup>

<PropertyGroup Condition=" '$(KSPRoot)' == '' And Exists('$(SteamKSPRoot)/$(KSPRootIdentifier)') ">
<!-- Look for KSP steam install-->
<KSPRoot>$(SteamKSPRoot)</KSPRoot>
<KSPRootSource>steam</KSPRootSource>
</PropertyGroup>
<!-- Define items -->
<ItemDefinitionGroup>
<ModReference>
<Private>false</Private>
<GenerateDependencyAttribute>true</GenerateDependencyAttribute>
</ModReference>
<KSPVersionFile>
<KSP_Version>1.12</KSP_Version>
<KSP_Version_Min>1.8</KSP_Version_Min>
<KSP_Version_Max>1.12</KSP_Version_Max>
</KSPVersionFile>
</ItemDefinitionGroup>

<PropertyGroup>
<!-- Calculate ManagedPath -->
<ManagedPath>$(KSPRoot)/$(ManagedRelativePath)</ManagedPath>
<!--Parse KSP platform-specific paths -->
<PropertyGroup Condition=" '$(KSPBT_ManagedRelativePath)' == '' ">
<KSPBT_ManagedRelativePath Condition=" $([MSBuild]::IsOsPlatform('Windows')) ">KSP_x64_Data/Managed</KSPBT_ManagedRelativePath>
<KSPBT_ManagedRelativePath Condition=" $([MSBuild]::IsOsPlatform('OSX')) ">KSP.app/Contents/Resources/Data/Managed</KSPBT_ManagedRelativePath>
<KSPBT_ManagedRelativePath Condition=" $([MSBuild]::IsOsPlatform('Linux')) ">KSP_Data/Managed</KSPBT_ManagedRelativePath>
</PropertyGroup>

<!-- set the start action so that you can launch directly from VS -->
<PropertyGroup>
<StartAction>Program</StartAction>
<StartProgram>$(KSPRoot)\$(KSPExecutable)</StartProgram>
<StartWorkingDirectory>$(KSPRoot)</StartWorkingDirectory>
<DebugType>portable</DebugType>
<_KSPBT_GameExecutable Condition=" $([MSBuild]::IsOsPlatform('Windows')) ">KSP_x64.exe</_KSPBT_GameExecutable>
<_KSPBT_GameExecutable Condition=" $([MSBuild]::IsOsPlatform('OSX')) ">KSP.app/Contents/MacOS/KSP</_KSPBT_GameExecutable>
<_KSPBT_GameExecutable Condition=" $([MSBuild]::IsOsPlatform('Linux')) ">KSP.x86_64</_KSPBT_GameExecutable>
<_KSPBT_SteamGameRoot Condition=" $([MSBuild]::IsOsPlatform('Windows')) ">C:\Program Files (x86)\Steam\steamapps\common\Kerbal Space Program</_KSPBT_SteamGameRoot>
<_KSPBT_SteamGameRoot Condition=" $([MSBuild]::IsOsPlatform('OSX')) ">$(HOME)/Library/Application Support/Steam/steamapps/common/Kerbal Space Program</_KSPBT_SteamGameRoot>
</PropertyGroup>

<!-- Prevent the compiler from acquiring or referencing any external reference assemblies -->
<PropertyGroup>
<!-- Do not download the .NET Framework Target Pack NuGet package automatically -->
<DisableTransitiveFrameworkReferenceDownloads>true</DisableTransitiveFrameworkReferenceDownloads>
<!-- Instruct the compiler to not automatically reference mscorlib -->
<NoStandardLib>true</NoStandardLib>
<!-- Prevent the GetReferenceAssemblyPaths task in Microsoft.Common.CurrentVersion.targets
from attempting to locate an external copy of the reference assemblies. -->
<AutomaticallyUseReferenceAssemblyPackages>false</AutomaticallyUseReferenceAssemblyPackages>
<FrameworkPathOverride>$(ManagedPath)</FrameworkPathOverride>
</PropertyGroup>
<!-- Import a props.user file -->
<!-- serves the same role as the csproj.user file -->
<Import Condition=" Exists('$(SolutionDir)$(SolutionName).props.user') " Project="$(SolutionDir)$(SolutionName).props.user"/>

<!--Import references-->
<ItemGroup>
<Reference Include="$(ManagedPath)\System.dll">
<Name>System (KSP/Mono)</Name>
<Private>False</Private>
</Reference>
<Reference Include="$(ManagedPath)\System.Core.dll">
<Name>System (KSP/Mono)</Name>
<Private>False</Private>
</Reference>
<Reference Include="$(ManagedPath)\mscorlib.dll">
<Name>System.Core (KSP/Mono)</Name>
<Private>False</Private>
</Reference>
<Reference Include="$(ManagedPath)\System.Xml.dll">
<Name>System.Xml (KSP/Mono)</Name>
<Private>False</Private>
</Reference>
</ItemGroup>
<ItemGroup Condition=" '$(ReferenceUnityAssemblies)' == 'true' ">
<Reference Include="$(ManagedPath)\UnityEngine*.dll">
<Name>UnityEngine</Name>
<Private>False</Private>
</Reference>
</ItemGroup>
<ItemGroup Condition=" '$(ReferenceKSPAssemblies)' == 'true' ">
<Reference Include="$(ManagedPath)\Assembly-CSharp.dll">
<Name>Assembly-CSharp</Name>
<Private>False</Private>
</Reference>
<Reference Include="$(ManagedPath)\Assembly-CSharp-firstpass.dll">
<Name>Assembly-CSharp-firstpass</Name>
<Private>False</Private>
</Reference>
</ItemGroup>
<!-- Import solution-wide props if it exists -->
<Import Condition=" Exists('$(SolutionDir)$(SolutionName).props') " Project="$(SolutionDir)$(SolutionName).props"/>

<ItemGroup>
<Compile Include = "$(MSBuildThisFileDirectory)/include/*.cs" Condition="exists('$(MSBuildThisFileDirectory)/include')"/>
<Compile Include="$(MSBuildThisFileDirectory)/include/*.cs" Condition="exists('$(MSBuildThisFileDirectory)/include')"/>
</ItemGroup>
</Project>
Loading
Loading