diff --git a/GitVersionTask/AssemblyInfoBuilder/UpdateAssemblyInfo.cs b/GitVersionTask/AssemblyInfoBuilder/UpdateAssemblyInfo.cs index 107999cf2c..bcef4476ae 100644 --- a/GitVersionTask/AssemblyInfoBuilder/UpdateAssemblyInfo.cs +++ b/GitVersionTask/AssemblyInfoBuilder/UpdateAssemblyInfo.cs @@ -24,6 +24,13 @@ public class UpdateAssemblyInfo : Task [Required] public string ProjectFile { get; set; } + + [Required] + public string ProjectDir { get; set; } + + [Required] + public string Configuration { get; set; } + [Required] public ITaskItem[] CompileFiles { get; set; } @@ -127,8 +134,20 @@ void CreateTempAssemblyInfo(CachedVersion semanticVersion, Config configuration) }; var assemblyInfo = assemblyInfoBuilder.GetAssemblyInfoText(configuration); - var tempFileName = string.Format("AssemblyInfo_{0}_{1}.g.cs", Path.GetFileNameWithoutExtension(ProjectFile), Path.GetRandomFileName()); - AssemblyInfoTempFilePath = Path.Combine(TempFileTracker.TempPath, tempFileName); + string tempFileName, tempDir; + if (string.IsNullOrEmpty(ProjectDir) || string.IsNullOrWhiteSpace(ProjectDir)) + { + tempDir = TempFileTracker.TempPath; + tempFileName = string.Format("AssemblyInfo_{0}_{1}.g.cs", Path.GetFileNameWithoutExtension(ProjectFile), Path.GetRandomFileName()); + } + else + { + tempDir = Path.Combine(ProjectDir, "obj", Configuration); + Directory.CreateDirectory(tempDir); + tempFileName = string.Format("GitVersionTaskAssemblyInfo.g.cs"); + } + + AssemblyInfoTempFilePath = Path.Combine(tempDir, tempFileName); File.WriteAllText(AssemblyInfoTempFilePath, assemblyInfo); } } diff --git a/GitVersionTask/NugetAssets/GitVersionTask.targets b/GitVersionTask/NugetAssets/GitVersionTask.targets index e360c442c3..75f4f3b558 100644 --- a/GitVersionTask/NugetAssets/GitVersionTask.targets +++ b/GitVersionTask/NugetAssets/GitVersionTask.targets @@ -25,6 +25,8 @@