<?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <ProjectGuid>{F1A573B0-F436-472C-AE29-0B91EA6B9F8F}</ProjectGuid> <OutputType>Exe</OutputType> <AppDesignerFolder>Properties</AppDesignerFolder> <RootNamespace>StardewModdingAPI</RootNamespace> <AssemblyName>StardewModdingAPI</AssemblyName> <TargetFrameworkVersion>v4.5</TargetFrameworkVersion> <FileAlignment>512</FileAlignment> <IsWebBootstrapper>false</IsWebBootstrapper> <TargetFrameworkProfile /> <PublishUrl>publish\</PublishUrl> <Install>true</Install> <InstallFrom>Disk</InstallFrom> <UpdateEnabled>false</UpdateEnabled> <UpdateMode>Foreground</UpdateMode> <UpdateInterval>7</UpdateInterval> <UpdateIntervalUnits>Days</UpdateIntervalUnits> <UpdatePeriodically>false</UpdatePeriodically> <UpdateRequired>false</UpdateRequired> <MapFileExtensions>true</MapFileExtensions> <ApplicationRevision>0</ApplicationRevision> <ApplicationVersion>1.0.0.%2a</ApplicationVersion> <UseApplicationTrust>false</UseApplicationTrust> <BootstrapperEnabled>true</BootstrapperEnabled> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PlatformTarget>AnyCPU</PlatformTarget> <DebugSymbols>true</DebugSymbols> <DebugType>full</DebugType> <Optimize>true</Optimize> <OutputPath>$(SolutionDir)\..\bin\Debug\SMAPI</OutputPath> <DefineConstants>TRACE;DEBUG</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <Prefer32Bit>false</Prefer32Bit> <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <PlatformTarget>AnyCPU</PlatformTarget> <DebugType>pdbonly</DebugType> <Optimize>true</Optimize> <OutputPath>$(SolutionDir)\..\bin\Release\SMAPI</OutputPath> <DefineConstants>TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <Prefer32Bit>false</Prefer32Bit> <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'"> <PlatformTarget>x86</PlatformTarget> <Prefer32Bit>false</Prefer32Bit> <DefineConstants>DEBUG;TRACE</DefineConstants> <UseVSHostingProcess>true</UseVSHostingProcess> <Optimize>false</Optimize> <OutputPath>$(SolutionDir)\..\bin\Debug\SMAPI</OutputPath> <DocumentationFile>$(SolutionDir)\..\bin\Debug\SMAPI\StardewModdingAPI.xml</DocumentationFile> <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'"> <PlatformTarget>x86</PlatformTarget> <Prefer32Bit>false</Prefer32Bit> <OutputPath>$(SolutionDir)\..\bin\Release\SMAPI</OutputPath> <DocumentationFile>$(SolutionDir)\..\bin\Debug\SMAPI\StardewModdingAPI.xml</DocumentationFile> <DefineConstants>TRACE</DefineConstants> <Optimize>true</Optimize> <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow> <DebugType>pdbonly</DebugType> <DebugSymbols>true</DebugSymbols> </PropertyGroup> <PropertyGroup> <ApplicationIcon>icon.ico</ApplicationIcon> </PropertyGroup> <ItemGroup> <Reference Include="Mono.Cecil, Version=0.9.6.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL"> <HintPath>..\packages\Mono.Cecil.0.9.6.4\lib\net45\Mono.Cecil.dll</HintPath> <Private>True</Private> </Reference> <Reference Include="Mono.Cecil.Mdb, Version=0.9.6.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL"> <HintPath>..\packages\Mono.Cecil.0.9.6.4\lib\net45\Mono.Cecil.Mdb.dll</HintPath> <Private>True</Private> </Reference> <Reference Include="Mono.Cecil.Pdb, Version=0.9.6.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL"> <HintPath>..\packages\Mono.Cecil.0.9.6.4\lib\net45\Mono.Cecil.Pdb.dll</HintPath> <Private>True</Private> </Reference> <Reference Include="Newtonsoft.Json, Version=8.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> <HintPath>..\packages\Newtonsoft.Json.8.0.3\lib\net45\Newtonsoft.Json.dll</HintPath> <Private>True</Private> </Reference> <Reference Include="System" /> <Reference Include="System.Core" /> <Reference Include="System.Drawing" /> <Reference Include="System.Management" Condition="$(OS) == 'Windows_NT'" /> <Reference Include="System.Numerics"> <Private>True</Private> </Reference> <Reference Include="System.Runtime.Caching"> <Private>True</Private> </Reference> <Reference Include="System.Windows.Forms" Condition="$(OS) == 'Windows_NT'" /> <Reference Include="System.Xml.Linq" /> <Reference Include="System.Data.DataSetExtensions" /> <Reference Include="Microsoft.CSharp" /> <Reference Include="System.Data" /> <Reference Include="System.Xml" /> </ItemGroup> <ItemGroup> <Compile Include="..\GlobalAssemblyInfo.cs"> <Link>Properties\GlobalAssemblyInfo.cs</Link> </Compile> <Compile Include="Command.cs" /> <Compile Include="Events\ContentEvents.cs" /> <Compile Include="Events\EventArgsValueChanged.cs" /> <Compile Include="Framework\Command.cs" /> <Compile Include="Config.cs" /> <Compile Include="Constants.cs" /> <Compile Include="Events\ControlEvents.cs" /> <Compile Include="Events\EventArgsCommand.cs" /> <Compile Include="Events\EventArgsClickableMenuChanged.cs" /> <Compile Include="Events\EventArgsClickableMenuClosed.cs" /> <Compile Include="Events\EventArgsControllerButtonPressed.cs" /> <Compile Include="Events\EventArgsControllerButtonReleased.cs" /> <Compile Include="Events\EventArgsControllerTriggerPressed.cs" /> <Compile Include="Events\EventArgsControllerTriggerReleased.cs" /> <Compile Include="Events\EventArgsCurrentLocationChanged.cs" /> <Compile Include="Events\EventArgsFarmerChanged.cs" /> <Compile Include="Events\EventArgsGameLocationsChanged.cs" /> <Compile Include="Events\EventArgsIntChanged.cs" /> <Compile Include="Events\EventArgsInventoryChanged.cs" /> <Compile Include="Events\EventArgsKeyboardStateChanged.cs" /> <Compile Include="Events\EventArgsKeyPressed.cs" /> <Compile Include="Events\EventArgsLevelUp.cs" /> <Compile Include="Events\EventArgsLoadedGameChanged.cs" /> <Compile Include="Events\EventArgsLocationObjectsChanged.cs" /> <Compile Include="Events\EventArgsMineLevelChanged.cs" /> <Compile Include="Events\EventArgsMouseStateChanged.cs" /> <Compile Include="Events\EventArgsNewDay.cs" /> <Compile Include="Events\EventArgsStringChanged.cs" /> <Compile Include="Events\GameEvents.cs" /> <Compile Include="Events\GraphicsEvents.cs" /> <Compile Include="Framework\AssemblyDefinitionResolver.cs" /> <Compile Include="Framework\AssemblyParseResult.cs" /> <Compile Include="Framework\CommandManager.cs" /> <Compile Include="Framework\Content\ContentEventData.cs" /> <Compile Include="Framework\Content\ContentEventHelper.cs" /> <Compile Include="Framework\Content\ContentEventHelperForDictionary.cs" /> <Compile Include="Framework\Content\ContentEventHelperForImage.cs" /> <Compile Include="Framework\Logging\ConsoleInterceptionManager.cs" /> <Compile Include="Framework\Logging\InterceptingTextWriter.cs" /> <Compile Include="Framework\CommandHelper.cs" /> <Compile Include="Framework\Models\ModCompatibilityType.cs" /> <Compile Include="Framework\Models\SConfig.cs" /> <Compile Include="Framework\Reflection\PrivateProperty.cs" /> <Compile Include="Framework\RequestExitDelegate.cs" /> <Compile Include="Framework\SContentManager.cs" /> <Compile Include="Framework\Serialisation\JsonHelper.cs" /> <Compile Include="Framework\Serialisation\SelectiveStringEnumConverter.cs" /> <Compile Include="Framework\Serialisation\SemanticVersionConverter.cs" /> <Compile Include="ICommandHelper.cs" /> <Compile Include="IContentEventData.cs" /> <Compile Include="IContentEventHelper.cs" /> <Compile Include="IContentEventHelperForDictionary.cs" /> <Compile Include="IContentEventHelperForImage.cs" /> <Compile Include="IModRegistry.cs" /> <Compile Include="Events\LocationEvents.cs" /> <Compile Include="Events\MenuEvents.cs" /> <Compile Include="Events\MineEvents.cs" /> <Compile Include="Events\PlayerEvents.cs" /> <Compile Include="Events\SaveEvents.cs" /> <Compile Include="Events\TimeEvents.cs" /> <Compile Include="Framework\DeprecationLevel.cs" /> <Compile Include="Framework\DeprecationManager.cs" /> <Compile Include="Framework\InternalExtensions.cs" /> <Compile Include="Framework\Models\ModCompatibility.cs" /> <Compile Include="Framework\AssemblyLoader.cs" /> <Compile Include="Framework\Reflection\CacheEntry.cs" /> <Compile Include="Framework\Reflection\PrivateField.cs" /> <Compile Include="Framework\Reflection\PrivateMethod.cs" /> <Compile Include="Framework\Reflection\ReflectionHelper.cs" /> <Compile Include="IManifest.cs" /> <Compile Include="IMod.cs" /> <Compile Include="IModHelper.cs" /> <Compile Include="Framework\Logging\LogFileManager.cs" /> <Compile Include="IPrivateProperty.cs" /> <Compile Include="ISemanticVersion.cs" /> <Compile Include="LogLevel.cs" /> <Compile Include="Framework\ModRegistry.cs" /> <Compile Include="Framework\UpdateHelper.cs" /> <Compile Include="Framework\Models\GitRelease.cs" /> <Compile Include="IMonitor.cs" /> <Compile Include="Events\ChangeType.cs" /> <Compile Include="Events\ItemStackChange.cs" /> <Compile Include="Log.cs" /> <Compile Include="Framework\Monitor.cs" /> <Compile Include="Framework\Manifest.cs" /> <Compile Include="Mod.cs" /> <Compile Include="Framework\ModHelper.cs" /> <Compile Include="PatchMode.cs" /> <Compile Include="Program.cs" /> <Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Framework\SGame.cs" /> <Compile Include="IPrivateField.cs" /> <Compile Include="IPrivateMethod.cs" /> <Compile Include="IReflectionHelper.cs" /> <Compile Include="SemanticVersion.cs" /> </ItemGroup> <ItemGroup> <None Include="App.config"> <SubType>Designer</SubType> </None> <None Include="packages.config"> <SubType>Designer</SubType> </None> <Content Include="StardewModdingAPI.config.json"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content> <None Include="unix-launcher.sh"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </None> </ItemGroup> <ItemGroup> <Content Include="icon.ico" /> <Content Include="steam_appid.txt"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content> </ItemGroup> <ItemGroup> <BootstrapperPackage Include=".NETFramework,Version=v4.5"> <Visible>False</Visible> <ProductName>Microsoft .NET Framework 4.5 %28x86 and x64%29</ProductName> <Install>true</Install> </BootstrapperPackage> <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1"> <Visible>False</Visible> <ProductName>.NET Framework 3.5 SP1</ProductName> <Install>false</Install> </BootstrapperPackage> </ItemGroup> <ItemGroup> <ProjectReference Include="..\StardewModdingAPI.AssemblyRewriters\StardewModdingAPI.AssemblyRewriters.csproj"> <Project>{10db0676-9fc1-4771-a2c8-e2519f091e49}</Project> <Name>StardewModdingAPI.AssemblyRewriters</Name> </ProjectReference> </ItemGroup> <Import Project="$(SolutionDir)\crossplatform.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <PropertyGroup> <PostBuildEvent> </PostBuildEvent> </PropertyGroup> <!-- if game path is invalid, show one user-friendly error instead of a slew of reference errors --> <Target Name="BeforeBuild"> <Error Condition="!Exists('$(GamePath)')" Text="Failed to find the game install path automatically; edit the *.csproj file and manually add a <GamePath> setting with the full directory path containing the Stardew Valley executable." /> </Target> <!-- copy files into game directory and enable debugging (only in debug mode) --> <Target Name="AfterBuild" Condition="$(Configuration) == 'Debug'"> <Copy SourceFiles="$(TargetDir)\$(TargetName).exe" DestinationFolder="$(GamePath)" /> <Copy SourceFiles="$(TargetDir)\$(TargetName).config.json" DestinationFolder="$(GamePath)" /> <Copy SourceFiles="$(TargetDir)\StardewModdingAPI.AssemblyRewriters.dll" DestinationFolder="$(GamePath)" /> <Copy SourceFiles="$(TargetDir)\$(TargetName).exe.mdb" DestinationFolder="$(GamePath)" Condition="$(OS) != 'Windows_NT'" /> <Copy SourceFiles="$(TargetDir)\$(TargetName).pdb" DestinationFolder="$(GamePath)" Condition="$(OS) == 'Windows_NT'" /> <Copy SourceFiles="$(TargetDir)\$(TargetName).xml" DestinationFolder="$(GamePath)" Condition="$(OS) == 'Windows_NT'" /> <Copy SourceFiles="$(TargetDir)\Newtonsoft.Json.dll" DestinationFolder="$(GamePath)" /> <Copy SourceFiles="$(TargetDir)\Mono.Cecil.dll" DestinationFolder="$(GamePath)" /> </Target> <!-- launch SMAPI on debug --> <PropertyGroup Condition="$(Configuration) == 'Debug'"> <StartAction>Program</StartAction> <StartProgram>$(GamePath)\StardewModdingAPI.exe</StartProgram> <StartWorkingDirectory>$(GamePath)</StartWorkingDirectory> </PropertyGroup> <!-- Somehow this makes Visual Studio for Mac recognise the previous section. --> <!-- Nobody knows why. --> <PropertyGroup Condition="'$(RunConfiguration)' == 'Default'" /> </Project>