.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.