Skip to content

dotnet pack is replacing symbolic links with actual files #19451

@vadi2

Description

@vadi2

dotnet pack is replacing symbolic links with actual files, instead of keeping them as symbolic links - which is a problem when shipping Linux libraries. As an example I have an original folder with 116M worth of files:

qt-runtime-linux/qt/lib$ ls -lh
total 116M
lrwxrwxrwx 1 chromebook chromebook   18 Aug  2  2020 libicudata.so -> libicudata.so.56.1
lrwxrwxrwx 1 chromebook chromebook   18 Aug  2  2020 libicudata.so.56 -> libicudata.so.56.1
-rwxr-xr-x 1 chromebook chromebook  24M Aug  2  2020 libicudata.so.56.1
lrwxrwxrwx 1 chromebook chromebook   18 Aug  2  2020 libicui18n.so -> libicui18n.so.56.1
lrwxrwxrwx 1 chromebook chromebook   18 Aug  2  2020 libicui18n.so.56 -> libicui18n.so.56.1
-rwxr-xr-x 1 chromebook chromebook 3.3M Aug  2  2020 libicui18n.so.56.1
// ...

When added to a package using <None Update="qt-runtime-linux/**/*.*" CopyToOutputDirectory="PreserveNewest" />, the following happens - package size is increased 4X:

tools/net5.0/any/qt-runtime-linux/qt/lib$ ls -lh
total 430M
-r--r--r-- 1 chromebook chromebook  24M Aug  2  2020 libicudata.so
-r--r--r-- 1 chromebook chromebook  24M Aug  2  2020 libicudata.so.56
-r--r--r-- 1 chromebook chromebook  24M Aug  2  2020 libicudata.so.56.1
-r--r--r-- 1 chromebook chromebook 3.3M Aug  2  2020 libicui18n.so
-r--r--r-- 1 chromebook chromebook 3.3M Aug  2  2020 libicui18n.so.56
-r--r--r-- 1 chromebook chromebook 3.3M Aug  2  2020 libicui18n.so.56.1

Is there a way to get the symbolic links to be treated as they are?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions