new net dotnet create cli .net .net-core dotnet-cli

.net - dotnet - create project net core



No se encontrĂ³ la biblioteca hostpolicy.dll (4)

Actualización para dotnet core 2.0 : el archivo appname.runtimeconfig.json (para la configuración tanto de depuración como de lanzamiento) es necesario en la misma ruta que appname.dll .

Contiene:

{ "runtimeOptions": { "tfm": "netcoreapp2.0", "framework": { "name": "Microsoft.NETCore.App", "version": "2.0.0" } } }

entonces el dotnet.exe exec "path/to/appname.dll" [appargs] funciona.

Tengo un simple proyecto .NET Core (aplicación de consola) que estoy tratando de compilar y ejecutar. dotnet build correctamente, pero aparece el siguiente error cuando dotnet run :

λ dotnet run Project RazorPrecompiler (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation. A fatal error was encountered. The library ''hostpolicy.dll'' required to execute the application was not found in [path].

Mi proyecto.json se ve así:

{ "buildOptions": { "warningsAsErrors": true }, "dependencies": { "Microsoft.AspNetCore.Razor": "1.0.0", "Microsoft.NETCore.App": { "type": "platform", "version": "1.0.0" } }, "description": "Precompiles Razor views.", "frameworks": { "netcoreapp1.0": { "imports": [ ] } }, "version": "1.2.0" }

¿Qué es hostpolicy.dll y por qué falta?


Este mensaje de error es inútil. El problema real es una propiedad emitEntryPoint faltante:

"buildOptions": { ... "emitEntryPoint": true },

Una vez que se agregue esto, el compilador le informará sobre cualquier otro problema (como un método static void Main() faltante static void Main() faltante). La compilación exitosa del proyecto dará como resultado una salida que la dotnet run puede ejecutar.


Para mí el problema fue con la falta de coincidencia de la versión. Tenía instalada una versión diferente de ".Net core SDK" y se especificó una versión diferente en el archivo .json.

Una vez que modifiqué la versión en mi archivo .json, la aplicación comenzó a funcionar bien.


Para mí, con ASP.NET Core 2.0 en Azure, fue el appname.deps.json que hizo el truco.