'Why $(SolutionDir) is undefined in dotnet CLI?
I'm trying to build my project from dotnet CLI
.
I'm using dotnet build
and it fails.
How to reproduct:
Create a simple console application using Visual Studio template
Add a file named
Colors.txt
to the solution directoryAdd a file named
Names.txt
to the project directoryModify
csproj
file to include apost-build
event<PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.1</TargetFramework> </PropertyGroup> <Target Name="CopySettingsToOutput" AfterTargets="PostBuildEvent"> <Exec Command="copy $(ProjectDir)\Names.txt $(TargetDir)\Names.txt" /> <Exec Command="copy $(SolutionDir)\Colors.txt $(TargetDir)\Colors.txt" /> </Target>
Now build using Visual Studio (it gets built)
Now build using
dotnet build
command and it fails. It says:
error MSB3073: The command "copy Undefined\Colors.txt C:\---path---\Colors.txt" exited with code 1.
Why $(SolutionDir)
is undefined when using dotnet build
?
Solution 1:[1]
the walkaround is provide that property in dotnet
command like:
$slnPath = 'directory where is solution'
dotnet build -property:SolutionDir=$slnPath
That can be usefull when you use dotnet
in any build pipelines like Azure DevOps
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | KondzioSSJ4 |