libgit2 / libgit2/libgit2sharp.nativebinaries

Parent double-dot path step in application manifest asmv1:assembly/file/@name throwing error

Open
#138 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
PowerShell
Stars
35
Forks
74
PR merge metrics
No merged PRs in 30d

Description

In building from NuGet, the application manifest includes a number of asmv1:assembly/file/@name values that have a double dot, e.g.,
<file name="lib\fedora-x64\native\..\libgit2-106a5f2.so" size="1198160">

This throws an error, e.g. (via SxsTrace):
ERROR: Line 449: The value lib\alpine.3.9-x64\native\..\libgit2-106a5f2.so of attribute name in element urn:schemas-microsoft-com:asm.v1^file is invalid.

It seems that the root of this issue is https://github.com/libgit2/libgit2sharp.nativebinaries/blob/9469eab266bacdbb46aed4610b3b0e6bbfc56395/nuget.package/build/net46/LibGit2Sharp.NativeBinaries.props#L11

There the double-dot parent path is hard coded to be imprinted and negate native.

I propose the removal of ..\ in attribute TargetPath or something similar. Keeping the native subdirectory shouldn't harm anything. At any rate, ISTM the syntactical constraints of asmv1:assembly/file/@name should be respected.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the LibGit2Sharp.NativeBinaries.props entry linked in the issue, especially line 11 and its TargetPath value. Rebuild from NuGet and verify that the generated application manifest no longer contains the parent path step and is accepted by SxsTrace.

Written by the indexing model from the issue text.

Assessment

Domain
build-system
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.