Поделиться через


Запись ссылочных сборок в промежуточные выходные данные

Пакет SDK для .NET теперь по умолчанию записывает сборки ссылок в IntermediateOutputPath, а не в OutDir. Это изменение исключает артефакты, существующие исключительно во время сборки, из выходных данных, которые требуются во время выполнения.

Представленная версия

Пакет SDK для .NET 6.0.200

Старое поведение

После добавления ссылочных сборок пакет SDK для .NET записывает ссылочные сборки в каталог ref в OutDir каталог компиляции. В .NET 5 свойство ProduceReferenceAssembly было введено и стало использоваться по умолчанию для приложений true и более поздних версий. С этим изменением многие приложения начали неявно создавать эталонные сборки в каталоге OutDir .

Новое поведение

Теперь ссылочные сборки по умолчанию записываются в каталог refint внутри каталога IntermediateOutputPath, как и многие другие промежуточные артефакты.

Причина изменения

Ссылочные сборки обычно не являются ресурсами во время выполнения, поэтому по умолчанию не должны находиться в каталоге OutDir.

Если у вас есть настраиваемая логика сборки и вам нужно управлять эталонными сборками, используйте TargetRefPath свойство, чтобы получить правильный путь.

Если для внешней системы требуется эталонная сборка OutDir, задайте свойству MSBuild ProduceReferenceAssemblyInOutDir значение true в файле проекта.