Reputation: 118
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 directory
Add a file named Names.txt
to the project directory
Modify csproj
file to include a post-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
?
Upvotes: 7
Views: 3164
Reputation: 260
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
Upvotes: 7