These are chat archives for mono/monodevelop

6th
Feb 2018
g
@germgerm
Feb 06 02:03
And now for something completely different : I have a console app that I recreated targetting 4.7, after adding all of the same packages and letting them upgrade to latest versions , my bin folder went from 10 dlls to 140 dlls !!! I am not doing anything with core or standard - what gives ? Even if some package has been rewritten to use standard - why are these dll's being included, isnt the point of standard that it will run on a full framework install without dragging in all of the standard assemblies ?
Alexander Köplinger
@akoeplinger
Feb 06 02:04
it needs these dlls so it can run on full framework. in 4.7.1 most of them were added to the framework so they won't appear in the bin folder
g
@germgerm
Feb 06 02:05
Huh ? if it is running on the FULL framework - why does it need any additioal dlls ?
Alexander Köplinger
@akoeplinger
Feb 06 02:06
because they contain type forwarders into the framework assemblies
g
@germgerm
Feb 06 02:06
Is there any easy way to determine which package is causing this bloat ?
Alexander Köplinger
@akoeplinger
Feb 06 02:06
well, all of them
that's one of the reasons why .net standard 2.0 moved back to being a single assembly again
g
@germgerm
Feb 06 02:07
All of which ?
Alexander Köplinger
@akoeplinger
Feb 06 02:08
the netstandard packages which get dragged in by a package that targets NS
g
@germgerm
Feb 06 02:08
packages that dont target standard shouldn't include any extra cruft should they ?
Alexander Köplinger
@akoeplinger
Feb 06 02:08
correct
but it just takes one package that does :wink:
g
@germgerm
Feb 06 02:09
right - so that is my question is there an easy way to determine which packages are causing the bloat ( because of standard ) so that I can back them off to older versions
actually - I was playing with standard over the weekend and created a couple of packages - they didn't seem to drag in any extra dll's ?
Alexander Köplinger
@akoeplinger
Feb 06 02:10
it depends on which version of the standard you targeted
g
@germgerm
Feb 06 02:10
2
Alexander Köplinger
@akoeplinger
Feb 06 02:10
yes, that will just drag in one additional dll: netstandard.dll (on net < 4.7)
g
@germgerm
Feb 06 02:10
so does that mean the packages causing this bloat are targetting NS 1 ?
Alexander Köplinger
@akoeplinger
Feb 06 02:10
yes
g
@germgerm
Feb 06 02:11
why am I hitting all of these all of the sudden ? because I targetted 4.7 ?
Alexander Köplinger
@akoeplinger
Feb 06 02:11
no I think you should've hit this before too
g
@germgerm
Feb 06 02:12
nope - the only other time I hit this was recently with mysql but interestingly, the latest version does NOT have this problem
Alexander Köplinger
@akoeplinger
Feb 06 02:13
if you're using non sdk style csproj's then you can check your references and see which one references a netstandard1 package version
g
@germgerm
Feb 06 02:14
aahhh - that makes it easy - just one - System.Text.Encodings.Web
now if only we could get that info from the nuget package explorer for each version available
you said that packages targetting NS 2 will just drag in netstandard.dll on net <4.7 - what happens >= 4.7 ?
Alexander Köplinger
@akoeplinger
Feb 06 02:18
netstandard.dll is included there in the framework
correction: it's included with 4.7.1
g
@germgerm
Feb 06 02:20
ok - so 4.7.1 won't pull in anything extra
Alexander Köplinger
@akoeplinger
Feb 06 02:20
yeah
g
@germgerm
Feb 06 02:20
backing off System.Text.Encodings.Web from 4.4 to 4.3 fixed it - I am now back to the expected dll count
Thanks for taking the time to clear that up for me :smile:
Alexander Köplinger
@akoeplinger
Feb 06 02:24
no problem :wink:
Curtis Wensley
@cwensley
Feb 06 05:28
hm, /MonoDevelop/Ide/ProjectTemplatePackageRepositories doesn't seem to be used when creating dotnet template engine templates. Is there an alternative?
or is it expected that dotnet template engine templates require an internet connection for nuget packages?
Matt Ward
@mrward
Feb 06 09:51
@cwensley No support for installing local NuGet packages when using the new templating engine. In general these would use PackageReferences which typically require an internet connection.
Curtis Wensley
@cwensley
Feb 06 17:01
@mrward good to know. Thanks for the response!