Intento incrustar el dll de una biblioteca de clases en mi exe. Uso Visual Studio 2019 y .net 5. Creé dos proyectos en una solución, uno es la biblioteca de clases (dll) y el segundo es una aplicación de consola, ambos destinados a .net core 5. Seleccioné la aplicación de consola como proyecto de inicio. la biblioteca de clases contiene solo la función de saludo estática pública que imprime el saludo. Hice referencia al proyecto de la biblioteca de clases en la aplicación de la consola y luego, en la aplicación de la consola, solo llamé a la función ClassNamespace.library.hello. cuando lo compilo, funciona bien. luego instalé costura.fody como se describe en su archivo Léame, lo agregué al proyecto de la consola mediante:
PM> Install-Package Fody PM> Install-Package Costura.FodyLuego me FodyWeavers.xml en la carpeta del proyecto
<Weavers> <Costura/> </Weavers>Después de eso, reconstruí el proyecto, lo compilé y el exe se está ejecutando, pero cuando elimino el .dll del directorio de salida, el .exe no se está ejecutando.
Esto se puede lograr sin ningún paquete adicional. Desde NET 5 tienes que configurar dos opciones.
<PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net5.0</TargetFramework> <!-- To publish just a single *.exe file --> <PublishSingleFile>true</PublishSingleFile> <!-- Specify for which runtime you want to publish --> <RuntimeIdentifier>win10-x64</RuntimeIdentifier> <!-- Since NET 5 specify this if you want to also pack all external *.dll to your file --> <IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract> <!-- Add trimming for a smaller file size if possible---> <PublishTrimmed>true</PublishTrimmed> </PropertyGroup> Con la configuración de IncludeNativeLibrariesForSelfExtract en false
Con la configuración de IncludeNativeLibrariesForSelfExtract en true