Pregunta

¿Fue útil?

Solución

Ya no hay necesidad de piratería si usa esto:

Otros consejos

Así que resultó que el entorno paralelo me estaba facilitando las cosas. Mono se instala en / usr, mientras que F # se instala en / usr / local, por lo que necesitaba configurar enlaces simbólicos para permitir que los objetivos FSharp y los objetivos comunes se vieran entre sí. Esto se detalla aquí: F # y XBuild (Debian)

Una vez que esto se configuró, todavía tenía problemas. Después de agregar algunos mensajes de depuración, descubrí que xbuild no resolvía la ruta a los objetivos de F # correctamente. El archivo del proyecto estaba intentando importar de esta manera:

  <Import Project="$(MSBuildExtensionsPath32)\FSharp\1.0\Microsoft.FSharp.Targets" Condition="!Exists('$(MSBuildBinPath)\Microsoft.Build.Tasks.v4.0.dll')" />
  <Import Project="$(MSBuildExtensionsPath32)\..\Microsoft F#\v4.0\Microsoft.FSharp.Targets" Condition="Exists('$(MSBuildBinPath)\Microsoft.Build.Tasks.v4.0.dll')" />

y xbuild tenía problemas para resolver la ruta relativa. Así que lo cambié a esto:

  <Import Project="$(TargetsPath)" Condition="$(TargetsPath) != ''" />
  <Import Project="$(MSBuildExtensionsPath32)\FSharp\1.0\Microsoft.FSharp.Targets" Condition="$(TargetsPath) == '' And !Exists('$(MSBuildBinPath)\Microsoft.Build.Tasks.v4.0.dll')" />
  <Import Project="$(MSBuildExtensionsPath32)\..\Microsoft F#\v4.0\Microsoft.FSharp.Targets" Condition="$(TargetsPath) == '' And Exists('$(MSBuildBinPath)\Microsoft.Build.Tasks.v4.0.dll')" />

lo que me permite pasar la ruta a FSharp.targets en la línea de comando.

Todavía hay algunos problemas (está fallando con una queja sobre ItemGroups que no está registrado, sé que esto es una debilidad en xbuild pero parece ser una falsa alarma - el proyecto de hecho se construye y se ejecuta con éxito). Espero que esto ayude a alguien más.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top