the app, and tests, will misbehave as they won't find the satellite resource assemblies at runtime.
during the build, all the satellite assemblies are copied, such that the build log reveals we have multiple file writes to the same location. I presume the result is non-deterministic.
Note that dotnet publish -f net46 lays the files out in their correct locations. But this is not an acceptable workaround for local building and testing. This is a regression as NuGet references previous to VS2017 (15.1) would copy them to the right locations and I depend on that.
When copied locally to an app, satellite assemblies should always be copied to their respective subdirectories according to their culture.
When a project defines
TargetFrameworks
, this behavior regresses. It works fine whenTargetFramework
is defined directly in a project instead.Repro steps
Modify project file as follows:
Then restore and build:
Expected
Satellite assemblies for the PackageReference to be copied to their appropriate subdirectories like this:
Actual
The satellite assemblies are all copied to the root bin folder:
This is a problem for several reasons:
Note that
dotnet publish -f net46
lays the files out in their correct locations. But this is not an acceptable workaround for local building and testing. This is a regression as NuGet references previous to VS2017 (15.1) would copy them to the right locations and I depend on that.