libgit2 / libgit2sharp.nativebinaries

MIT License
28 stars 62 forks source link

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

Open Arithmeticus opened 2 years ago

Arithmeticus commented 2 years ago

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.