Skip to content

Commit

Permalink
[build] Fix 'BuildVersionInfo_g_cs' build target. (dotnet#881)
Browse files Browse the repository at this point in the history
Commit 3e6a623 added a new target 'BuildVersionInfo_g_cs', which is
responsible for generating the file
`$(IntermediateOutputPath)$(AssemblyName).AssemblyInfo.g.cs)`.

Unfortunately, it turns out that`$(IntermediateOutputPath)` has not
been created when the target is run, so we error out:

	…/Java.Interop/src/Java.Interop/Directory.Build.targets(44,5): error MSB4018: The "GenerateVersionFile" task failed unexpectedly. 
	…/Java.Interop/src/Java.Interop/Directory.Build.targets(44,5): error MSB4018: System.IO.DirectoryNotFoundException: Could not find a part of the path "…/external/Java.Interop/src/Java.Interop/obj/Release-monoandroid10/Java.Interop.AssemblyInfo.g.cs".
	…/Java.Interop/src/Java.Interop/Directory.Build.targets(44,5): error MSB4018:   at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean anonymous, System.IO.FileOptions options)
	…/Java.Interop/src/Java.Interop/Directory.Build.targets(44,5): error MSB4018:   at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.IO.FileOptions options)
	…/Java.Interop/src/Java.Interop/Directory.Build.targets(44,5): error MSB4018:   at (wrapper remoting-invoke-with-check) System.IO.FileStream..ctor(string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,int,System.IO.FileOptions)
	…/Java.Interop/src/Java.Interop/Directory.Build.targets(44,5): error MSB4018:   at System.IO.StreamWriter..ctor (System.String path, System.Boolean append, System.Text.Encoding encoding, System.Int32 bufferSize)
	…/Java.Interop/src/Java.Interop/Directory.Build.targets(44,5): error MSB4018:   at System.IO.StreamWriter..ctor (System.String path)
	…/Java.Interop/src/Java.Interop/Directory.Build.targets(44,5): error MSB4018:   at (wrapper remoting-invoke-with-check) System.IO.StreamWriter..ctor(string)
	…/Java.Interop/src/Java.Interop/Directory.Build.targets(44,5): error MSB4018:   at System.IO.File.WriteAllText (System.String path, System.String contents)
	…/Java.Interop/src/Java.Interop/Directory.Build.targets(44,5): error MSB4018:   at Java.Interop.BootstrapTasks.GenerateVersionFile.Execute ()

Ensure that `$(IntermediateOutputPath)` exists by moving the
`BuildVersionInfo_g_cs` target to run *after* the
`BuildJniEnvironment_g_cs` target, which creates
`$(IntermediateOutputPath)`.

Additionally, update the Condition which sets
`$(JIBuildingForNetCoreApp)` so that `$(JIBuildingForNetCoreApp)` is
*not* when `$(TargetFramework)` starts with `monoandroid`.
This avoids the error:

	error MSB3073: The command "$HOME/android-toolchain/dotnet/dotnet "…/Java.Interop/bin/BuildDebug-monoandroid10/jnienv-gen.dll" Java.Interop/JniEnvironment.g.cs obj/Debug-monoandroid10/jni.c" exited with code 1
  • Loading branch information
dellis1972 authored Sep 14, 2021
1 parent 7068f4b commit 8f7ddcd
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 2 deletions.
2 changes: 1 addition & 1 deletion Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
<AppendTargetFrameworkToOutputPath Condition=" '$(AppendTargetFrameworkToOutputPath)' == '' ">False</AppendTargetFrameworkToOutputPath>
<BaseIntermediateOutputPath Condition=" '$(BaseIntermediateOutputPath)' == '' ">obj\</BaseIntermediateOutputPath>
</PropertyGroup>
<PropertyGroup Condition=" ( '$(TargetFramework)' != '' AND !$(TargetFramework.StartsWith('nets'))) AND (!$(TargetFramework.StartsWith('net4'))) ">
<PropertyGroup Condition=" '$(TargetFramework)' != '' And (!$(TargetFramework.StartsWith('nets')) And !$(TargetFramework.StartsWith('net4')) And !$(TargetFramework.StartsWith('monoandroid'))) ">
<JIBuildingForNetCoreApp>True</JIBuildingForNetCoreApp>
</PropertyGroup>
<PropertyGroup Condition=" '$(JIBuildingForNetCoreApp)' == 'True' ">
Expand Down
2 changes: 1 addition & 1 deletion src/Java.Interop/Java.Interop-MonoAndroid.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,8 @@
<Import Project="Directory.Build.targets" />
<PropertyGroup>
<BuildDependsOn>
BuildVersionInfo_g_cs;
BuildJniEnvironment_g_cs;
BuildVersionInfo_g_cs;
BuildInteropJar;
$(BuildDependsOn)
</BuildDependsOn>
Expand Down

0 comments on commit 8f7ddcd

Please sign in to comment.