<Target Name="BeforeBuild">
<TransformXml
Source="Web.config"
Transform="Web.$(Configuration).config"
Destination="Web.config" />
</Target>
<Import
Project="..\packages\NETStandard.Library.2.0.1\build\netstandard2.0\NETStandard.Library.targets"
Condition="Exists('..\packages\NETStandard.Library.2.0.1\build\netstandard2.0\NETStandard.Library.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer.
Use NuGet Package Restore to download them. For more information, see
http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
</ErrorText>
</PropertyGroup>
<Error
Condition="!Exists('..\packages\NETStandard.Library.2.0.1\build\netstandard2.0\NETStandard.Library.targets')"
Text="$([System.String]::Format('$(ErrorText)',
'..\packages\NETStandard.Library.2.0.1\build\netstandard2.0\NETStandard.Library.targets'))" />
</Target>
In the Website Project, if using web.config add the following lines to your web project solution within the <Project></Project> tags.
<connectionStrings>
<add
name="Admin"
connectionString="Data Source=(local);
Initial Catalog=Admin;
Integrated Security=True;
Column Encryption Setting=Disabled;"
providerName="System.Data.SqlClient"
xdt:Transform="SetAttributes"
xdt:Locator="Match(name)"/>
</connectionStrings>
<appSettings>
<add
key="RedisServerSessionState"
value="localhost"
xdt:Transform="SetAttributes"
xdt:Locator="Match(key)"/>
</appSettings>
Add transformations to each config file.
https://myproject.visualstudio.com
/t:Build
/p:RunOctoPack=true
/p:OctoPackPublishPackageToHttp=https://mybuildserver.mycompany.com/nuget/packages
/p:OctoPackPublishApiKey=$(OctopusDeployAPIKey)
/p:OctoPackPackageVersion=$(Build.BuildNumber)
/p:OctoPackAppendToPackageId=$(BuildConfiguration)
$(BuildDefinitionName)_$(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r)
$(date:yyyyMMdd)$(rev:.r)
USE [master];
GO
CREATE DATABASE [AdminTestDeploy] CONTAINMENT = NONE ON PRIMARY (
NAME = N'AdminTestDeploy',
FILENAME = N'D:\Databases\AdminTestDeploy.mdf',
SIZE = 55296KB, MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB),
FILEGROUP [AdminInMemFG] CONTAINS MEMORY_OPTIMIZED_DATA DEFAULT (
NAME = N'AdminInMemFG',
FILENAME = N'D:\Databases\AdminInMemFG', MAXSIZE = UNLIMITED),
FILEGROUP [FGBlob] (
NAME = N'AdminTestDeploy_FGBlob',
FILENAME = N'D:\Databases\AdminTestDeploy_FGBlob.ndf',
SIZE = 1024KB, MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB),
FILEGROUP [FGData] DEFAULT (
NAME = N'AdminTestDeploy_FGData',
FILENAME = N'D:\Databases\AdminTestDeploy_FGData.ndf',
SIZE = 1024KB, MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB),
FILEGROUP [FGIndexes] (
NAME = N'AdminTestDeploy_FGIndexes',
FILENAME = N'D:\Databases\AdminTestDeploy_FGIndexes.ndf',
SIZE = 1024KB, MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB)
LOG ON (NAME = N'AdminTestDeploy_log',
FILENAME = N'L:\DatabaseLogs\AdminTestDeploy_log.ldf',
SIZE = 128GB, MAXSIZE = 2048GB, FILEGROWTH = 51200KB);
GO
Azure DevOps
https://azure.microsoft.com/en-us/services/devops/pipelines/
https://azure.microsoft.com/en-us/services/devops/repos/
Red Gate SQL Compare
https://www.red-gate.com/products/sql-development/sql-compare/
Red Gate DLM
https://www.red-gate.com/products/dlm/dlm-automation/
Octopus Deploy
https://octopus.com/
Email: Jeff@ReviewMyDB.com
Twitter: @ReviewMyDB