Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

.NET Core 2.0 Console app with DirectoryCatalog compiles nicely but fails during publish #41767

Closed
sdg002 opened this issue Sep 6, 2019 · 5 comments

Comments

@sdg002
Copy link

sdg002 commented Sep 6, 2019

Hi All,
My environment is Visual Studio 2017, 15.9.11 on Windows 10. I am facing a problem with using the DirectoryCatalog class. This is a very simple project. It compiles and debugs fine. But, publishing will not work.

Detailed steps

  1. Create an empty .NET Core 2.0 Console app
  2. Add the line

Console.WriteLine("Hello word");

  1. Build the proect
  2. Now publish the project using the parameters (self-contained, win-x64)
  3. Publishing should work fine. No errors at this stage
  4. Add the following nuget package

Install-Package System.ComponentModel.Composition -Version 4.5.0

6.Add the line to Main function.

DirectoryCatalog d = new DirectoryCatalog("c:\");

7.Build the project. Everything works fine.
8. Now try publishing using the same profile that was created in the earlier steps
9. Publishing fails with the following error message.

The type or namespace name 'Composition' does not exist in the namespace 'System.ComponentModel' (are you missing an assembly reference?)

  1. It appears as though, the Publish step is referencing some other version of the assembly System.ComponentModel.Composition.dll , a version which does not contain the class DirectoryCatalog.

Full error message from the output window after Publish

2>Restoring packages for C:\Users\saurabhd\MyTrials\MefConsole001\MefConsole001\MefConsole001.csproj...
2>Restore completed in 637.23 ms for C:\Users\saurabhd\MyTrials\MefConsole001\MefConsole001\MefConsole001.csproj.
2>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Roslyn\csc.exe /noconfig /unsafe- /checked- /nowarn:1701,1702,1701,1702,2008 /nostdlib+ /platform:x64 /errorreport:prompt /warn:4 /define:TRACE;RELEASE;NETCOREAPP;NETCOREAPP2_0 /errorendlocation /preferreduilang:en-US /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\Microsoft.CSharp.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\Microsoft.VisualBasic.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\Microsoft.Win32.Primitives.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\mscorlib.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\netstandard.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.AppContext.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Buffers.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Collections.Concurrent.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Collections.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Collections.Immutable.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Collections.NonGeneric.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Collections.Specialized.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.ComponentModel.Annotations.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.ComponentModel.Composition.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.ComponentModel.DataAnnotations.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.ComponentModel.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.ComponentModel.EventBasedAsync.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.ComponentModel.Primitives.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.ComponentModel.TypeConverter.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Configuration.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Console.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Core.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Data.Common.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Data.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Diagnostics.Contracts.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Diagnostics.Debug.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Diagnostics.DiagnosticSource.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Diagnostics.FileVersionInfo.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Diagnostics.Process.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Diagnostics.StackTrace.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Diagnostics.TextWriterTraceListener.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Diagnostics.Tools.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Diagnostics.TraceSource.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Diagnostics.Tracing.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Drawing.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Drawing.Primitives.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Dynamic.Runtime.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Globalization.Calendars.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Globalization.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Globalization.Extensions.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.IO.Compression.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.IO.Compression.FileSystem.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.IO.Compression.ZipFile.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.IO.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.IO.FileSystem.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.IO.FileSystem.DriveInfo.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.IO.FileSystem.Primitives.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.IO.FileSystem.Watcher.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.IO.IsolatedStorage.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.IO.MemoryMappedFiles.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.IO.Pipes.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.IO.UnmanagedMemoryStream.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Linq.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Linq.Expressions.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Linq.Parallel.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Linq.Queryable.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Net.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Net.Http.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Net.HttpListener.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Net.Mail.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Net.NameResolution.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Net.NetworkInformation.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Net.Ping.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Net.Primitives.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Net.Requests.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Net.Security.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Net.ServicePoint.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Net.Sockets.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Net.WebClient.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Net.WebHeaderCollection.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Net.WebProxy.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Net.WebSockets.Client.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Net.WebSockets.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Numerics.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Numerics.Vectors.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.ObjectModel.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Reflection.DispatchProxy.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Reflection.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Reflection.Emit.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Reflection.Emit.ILGeneration.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Reflection.Emit.Lightweight.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Reflection.Extensions.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Reflection.Metadata.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Reflection.Primitives.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Reflection.TypeExtensions.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Resources.Reader.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Resources.ResourceManager.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Resources.Writer.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Runtime.CompilerServices.VisualC.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Runtime.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Runtime.Extensions.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Runtime.Handles.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Runtime.InteropServices.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Runtime.InteropServices.RuntimeInformation.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Runtime.InteropServices.WindowsRuntime.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Runtime.Loader.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Runtime.Numerics.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Runtime.Serialization.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Runtime.Serialization.Formatters.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Runtime.Serialization.Json.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Runtime.Serialization.Primitives.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Runtime.Serialization.Xml.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Security.Claims.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Security.Cryptography.Algorithms.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Security.Cryptography.Csp.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Security.Cryptography.Encoding.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Security.Cryptography.Primitives.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Security.Cryptography.X509Certificates.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Security.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Security.Principal.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Security.SecureString.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.ServiceModel.Web.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.ServiceProcess.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Text.Encoding.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Text.Encoding.Extensions.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Text.RegularExpressions.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Threading.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Threading.Overlapped.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Threading.Tasks.Dataflow.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Threading.Tasks.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Threading.Tasks.Extensions.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Threading.Tasks.Parallel.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Threading.Thread.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Threading.ThreadPool.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Threading.Timer.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Transactions.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Transactions.Local.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.ValueTuple.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Web.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Web.HttpUtility.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Windows.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Xml.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Xml.Linq.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Xml.ReaderWriter.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Xml.Serialization.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Xml.XDocument.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Xml.XmlDocument.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Xml.XmlSerializer.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Xml.XPath.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\System.Xml.XPath.XDocument.dll /reference:C:\Users\saurabhd\.nuget\packages\microsoft.netcore.app\2.0.9\ref\netcoreapp2.0\WindowsBase.dll /debug- /debug:portable /filealign:512 /optimize+ /out:obj\Release\netcoreapp2.0\win-x64\MefConsole001.dll /ruleset:"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Team Tools\Static Analysis Tools\\Rule Sets\MinimumRecommendedRules.ruleset" /target:exe /warnaserror- /utf8output /deterministic+ Program.cs "C:\Users\saurabhd\AppData\Local\Temp\.NETCoreApp,Version=v2.0.AssemblyAttributes.cs" obj\Release\netcoreapp2.0\win-x64\MefConsole001.AssemblyInfo.cs /warnaserror+:NU1605
2>The type or namespace name 'Composition' does not exist in the namespace 'System.ComponentModel' (are you missing an assembly reference?)
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
========== Publish: 0 succeeded, 1 failed, 0 skipped ==========

Where am I going wrong?
Thanks,
Sau

@sdg002 sdg002 changed the title .NET Core 2.0 Console app compiles nicely when DirectoryCatalog, but fails to publish .NET Core 2.0 Console app with DirectoryCatalog compiles nicely but fails during publish Sep 6, 2019
@scalablecory
Copy link
Contributor

DirectoryCatalog is only supported starting in .NET Core 2.1, not 2.0. Please try to upgrade -- I suggest to .NET Core 2.2 -- and let us know if that works!

That VS was allowing you to build is suspect; I'd be interested in seeing a full sample project that builds in VS but not with "dotnet build" if you want to upload one.

@scalablecory scalablecory self-assigned this Sep 6, 2019
@sdg002
Copy link
Author

sdg002 commented Sep 7, 2019

Hi,

Thanks for the quick response.
Yes. It works well with .NET Core 2.1.

With regards to the problem with .NET Core 2.0, it would be imperative if Visual Studio tooling can be improved to give the right warnings during compilation itself. My sample CSPROJ attached. Hope this helps.

ConsoleAppMef001.zip

@scalablecory scalablecory removed their assignment Sep 2, 2020
@scalablecory scalablecory transferred this issue from dotnet/core Sep 2, 2020
@Dotnet-GitSync-Bot
Copy link
Collaborator

I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label.

@Dotnet-GitSync-Bot Dotnet-GitSync-Bot added the untriaged New issue has not been triaged by the area owner label Sep 2, 2020
@ghost
Copy link

ghost commented Sep 3, 2020

Tagging subscribers to this area: @ViktorHofer
See info in area-owners.md if you want to be subscribed.

@ericstj
Copy link
Member

ericstj commented Sep 14, 2020

This is happening because on publish the SDK references a newer version of Microsoft.NETCore.App which has a higher file version of System.ComponentModel.Composition. That version ("4.6.26614.1") wins over the version in this NuGet package ("4.6.26515.06"). This is only a problem in .NETCore 2.0 because at that time we had a System.ComponentModel.Composition.dll in the framework which only included a type forward. This was fixed in dotnet/corefx#24921 by removing that file from the framework, but of course that fix only went into 2.1 (since that's when we shipped and supported System.ComponentModel.Composition).

You can reference the newer version of System.ComponentModel.Composition package to avoid this problem.

    <PackageReference Include="System.ComponentModel.Composition" Version="4.6.0" />

This version, and later versions, will always have a higher file version than those in .NETCore2.0 and avoid this issue.

@ericstj ericstj closed this as completed Sep 14, 2020
@ericstj ericstj added bug and removed untriaged New issue has not been triaged by the area owner labels Sep 14, 2020
@ghost ghost locked as resolved and limited conversation to collaborators Dec 12, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants