Проект C# со ссылкой на пакет на nuget со сборкой exeC#

Место общения программистов C#
Anonymous
Проект C# со ссылкой на пакет на nuget со сборкой exe

Сообщение Anonymous »

Я знаю, что на заре .NET Framework вы могли построить сборку в EXE, а затем использовать эту «сборку EXE» в качестве зависимости от другой сборки .NET Framework, которая тоже могла быть, например, «сборкой EXE».
Примерно десятилетие спустя появились пакеты NuGet, и люди перешли с .NET Framework на .NET Core, а сегодня — на .NET 8, 9 или даже 10...
Мои вопросы:
  • Можно ли создать и опубликовать пакет NuGet всего с одной сборкой, внутри которой, однако, будет выходной тип EXE?
  • И затем, возможно ли создать другой проект C# с зависимостью от этого пакета NuGet и фактически от этой EXE-сборки в нем?
Я использую .NET Core (.NET 8 или 9) в Linux, и кажется, что я не могу собрать зависимый проект, если не принимаю странные предупреждения компилятора, такие как:

Код: Выделить всё

Warning MSB3246 : Resolved file has a bad image, no metadata, or is otherwise inaccessible. PE image does not have metadata. PE image does not have metadata.
Warning MSB3243 : No way to resolve conflict between "MyCompany.MyNugetPackage, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null" and "MyCompany.MyNugetPackage". Choosing "MyCompany.MyNugetPackage, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null" arbitrarily.
Мне кажется, что сборке без предупреждений мешает тот факт, что в этом пакете NuGet есть два «похожих» файла: Информация о сборке (версия, культура и т. д.) содержится только в файле DLL, тогда как файл EXE фактически не распознается как сборка (по крайней мере, инструментом ILDasm). Тем не менее, я подозреваю, что MSBuild (или что-то еще, что собирает мой проект) не может определить, какой из двух файлов использовать в процессе сборки.
Есть идеи?

Подробнее здесь: https://stackoverflow.com/questions/798 ... e-assembly

Вернуться в «C#»