TemplateGadgetMod.csproj 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Project Sdk="Microsoft.NET.Sdk">
  3. <ImportGroup>
  4. <Import Project="../GamePaths.xml" />
  5. </ImportGroup>
  6. <PropertyGroup>
  7. <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>
  8. <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
  9. <ProjectGuid>{91AB81DE-EAEE-47D1-93DD-541179208219}</ProjectGuid>
  10. <OutputType>Library</OutputType>
  11. <AppDesignerFolder>Properties</AppDesignerFolder>
  12. <RootNamespace>TemplateGadgetMod</RootNamespace>
  13. <AssemblyName>TemplateGadgetMod</AssemblyName>
  14. <TargetFrameworks>net35</TargetFrameworks>
  15. <FileAlignment>512</FileAlignment>
  16. <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
  17. <Configurations>Release</Configurations>
  18. <Authors>TemplateDeveloper</Authors>
  19. <ApplicationIcon />
  20. <StartupObject />
  21. <Platforms>x86</Platforms>
  22. </PropertyGroup>
  23. <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
  24. <PlatformTarget>x86</PlatformTarget>
  25. <DebugType>none</DebugType>
  26. <Optimize>true</Optimize>
  27. <OutputPath>Release\</OutputPath>
  28. <DefineConstants>TRACE</DefineConstants>
  29. <ErrorReport>prompt</ErrorReport>
  30. <WarningLevel>4</WarningLevel>
  31. <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
  32. </PropertyGroup>
  33. <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net35|x86'">
  34. <NoWarn>1701;1702</NoWarn>
  35. </PropertyGroup>
  36. <ItemGroup>
  37. <Reference Include="0Harmony">
  38. <HintPath>$(GamePath)$(ManagedFolder)0Harmony.dll</HintPath>
  39. <Private>false</Private>
  40. </Reference>
  41. <Reference Include="Assembly-CSharp">
  42. <HintPath>$(GamePath)$(ManagedFolder)Assembly-CSharp.dll</HintPath>
  43. <Private>false</Private>
  44. </Reference>
  45. <Reference Include="GadgetCore">
  46. <HintPath>$(GamePath)$(ManagedFolder)GadgetCore.dll</HintPath>
  47. <Private>false</Private>
  48. </Reference>
  49. <Reference Include="UnityEngine">
  50. <HintPath>$(GamePath)$(ManagedFolder)UnityEngine.dll</HintPath>
  51. <Private>false</Private>
  52. </Reference>
  53. </ItemGroup>
  54. <ItemGroup>
  55. <Content Include="ModInfo.txt">
  56. <CopyToOutputDirectory>Always</CopyToOutputDirectory>
  57. </Content>
  58. </ItemGroup>
  59. <UsingTask TaskName="GetFileVersion" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
  60. <ParameterGroup>
  61. <AssemblyPath ParameterType="System.String" Required="true" />
  62. <Version ParameterType="System.String" Output="true" />
  63. <TrimmedVersion ParameterType="System.String" Output="true" />
  64. </ParameterGroup>
  65. <Task>
  66. <Using Namespace="System.Diagnostics" />
  67. <Using Namespace="System.Text" />
  68. <Using Namespace="System.Linq" />
  69. <Code Type="Fragment" Language="cs">
  70. <![CDATA[
  71. this.Version = FileVersionInfo.GetVersionInfo(this.AssemblyPath).FileVersion;
  72. this.TrimmedVersion = this.Version.Split('.').TakeWhile(x => !x.Equals("0")).Aggregate(new StringBuilder(), (a, b) => { if (a.Length > 0) a.Append("."); a.Append(b); return a; }).ToString();
  73. if (this.TrimmedVersion.IndexOf('.') == -1) this.TrimmedVersion += ".0";
  74. ]]>
  75. </Code>
  76. </Task>
  77. </UsingTask>
  78. <Target Name="PostBuild" AfterTargets="PostBuildEvent">
  79. <GetFileVersion AssemblyPath="$(TargetPath)">
  80. <Output TaskParameter="Version" PropertyName="ModFullVersion" />
  81. <Output TaskParameter="TrimmedVersion" PropertyName="AssemblyFileVersion" />
  82. </GetFileVersion>
  83. <ItemGroup>
  84. <OldZip Include="$(TargetDir)$(AssemblyName)_v*.zip" />
  85. <OldZip Include="$(GamePath)GadgetCore\Mods\$(AssemblyName)_v*.zip" />
  86. </ItemGroup>
  87. <Delete Files="@(OldZip)" />
  88. <MakeDir Directories="$(TargetDir)..\BuildCache\" />
  89. <ZipDirectory SourceDirectory="$(TargetDir)" DestinationFile="$(TargetDir)..\BuildCache\$(AssemblyName)_v$(AssemblyFileVersion).zip" />
  90. <Copy SourceFiles="$(TargetDir)..\BuildCache\$(AssemblyName)_v$(AssemblyFileVersion).zip" DestinationFiles="$(TargetDir)$(AssemblyName)_v$(AssemblyFileVersion).zip" />
  91. <RemoveDir Directories="$(TargetDir)..\BuildCache\" />
  92. <MakeDir Directories="$(GamePath)GadgetCore\Mods\" />
  93. <Copy SourceFiles="$(TargetDir)$(AssemblyName)_v$(AssemblyFileVersion).zip" DestinationFiles="$(GamePath)GadgetCore\Mods\$(AssemblyName)_v$(AssemblyFileVersion).zip" />
  94. <Message Importance="High" Text="Mod Exported to $(GamePath)GadgetCore\Mods\$(AssemblyName)_v$(AssemblyFileVersion).zip" />
  95. </Target>
  96. <ItemGroup>
  97. <None Update="Manifest.ini">
  98. <CopyToOutputDirectory>Always</CopyToOutputDirectory>
  99. </None>
  100. </ItemGroup>
  101. <ItemGroup>
  102. <Reference Update="System">
  103. <Private>false</Private>
  104. <SpecificVersion>true</SpecificVersion>
  105. </Reference>
  106. </ItemGroup>
  107. <ItemGroup>
  108. <Reference Update="System.Data">
  109. <EmbedInteropTypes>false</EmbedInteropTypes>
  110. </Reference>
  111. </ItemGroup>
  112. <ItemGroup>
  113. <Reference Update="System.Drawing">
  114. <EmbedInteropTypes>false</EmbedInteropTypes>
  115. </Reference>
  116. </ItemGroup>
  117. <ItemGroup>
  118. <Reference Update="System.IO.Compression.FileSystem">
  119. <EmbedInteropTypes>false</EmbedInteropTypes>
  120. </Reference>
  121. </ItemGroup>
  122. <ItemGroup>
  123. <Reference Update="System.Numerics">
  124. <EmbedInteropTypes>false</EmbedInteropTypes>
  125. </Reference>
  126. </ItemGroup>
  127. <ItemGroup>
  128. <Reference Update="System.Runtime.Serialization">
  129. <EmbedInteropTypes>false</EmbedInteropTypes>
  130. </Reference>
  131. </ItemGroup>
  132. <ItemGroup>
  133. <Reference Update="System.Xml">
  134. <EmbedInteropTypes>false</EmbedInteropTypes>
  135. </Reference>
  136. </ItemGroup>
  137. <ItemGroup>
  138. <Reference Update="System.Xml.Linq">
  139. <EmbedInteropTypes>false</EmbedInteropTypes>
  140. </Reference>
  141. </ItemGroup>
  142. </Project>