Skip to content

.csproj files within a local UPM can't find MSBuildForUnity.Common.props #144

@mschofie

Description

@mschofie

I'm attempting to follow Scenario 4: Distribute a UPM Package w/ NuGet Dependency. Based on my understanding of the documentation, I have:

  1. Added a '.csproj' file to my UPM that announces the NuGet dependencies that my UPM needs.
  2. Made com.microsoft.msbuildforunity a dependency of the UPM

When adding the UPM to an existing Unity project the com.microsoft.msbuildforunity integration kicks in, and I see the command-line invoked:

[package location]\Runtime> C:\Program Files\dotnet\dotnet.exe msbuild [packagename].csproj -restore  -v:minimal -p:NuGetInteractive=true  -t:Build -p:Configuration=Release

But since the [package location] - for local packages - is outside the scope of the Unity project, then the line:

<Import Project="$([MSBuild]::GetPathOfFileAbove(MSBuildForUnity.Common.props))" Condition="Exists('$([MSBuild]::GetPathOfFileAbove(MSBuildForUnity.Common.props))')" />

is a no-op, since the condition evaluates to false. There doesn't appear to be a way - given the command-line invoked - to identify the Unity project folder.

Proposal

Have the com.microsoft.msbuildforunity Unity scripts pass the Application.dataPath into the dotnet msbuild invocation as an MSBuild property would make the import a lot more clear.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions