Visual Studio: publicar referencias de proyectos de la función Azure dentro de la carpeta bin

CorePress2024-01-25  11

Tengo una aplicación de función azul que hace referencia a otro proyecto de consola (MyConsoleApp) como "Referencia de proyecto". Cuando publico la aplicación de funciones de Azure, el proyecto de la consola se compila y se coloca fuera de la carpeta bin. ¿Cómo hacer que el archivo MyConsoleApp.exe se copie en la carpeta bin mientras se publica la aplicación de función Azure?

Aquí está la estructura del proyecto VS

Publicar resultado:



------------------------------------

Puede ampliarlo a través de MSBuild. Agregue esto a su archivo <azure function>.csproj:

<ItemGroup>
    <FunctionsPublishAssemblies Include="$(TargetDir)MyConsoleApp.exe"></FunctionsPublishAssemblies>
</ItemGroup>

Después de eso, haga clic en el botón Publicar y encontrará elMyConsoleApp.exe se encuentra en la carpeta Publish\bin durante el proceso de publicación.

Actualizar

Agréguelos en el archivo <azure function>.csproj:

<ItemGroup>
    <FunctionsPublishAssemblies Include="$(TargetDir)MyConsoleApp.exe"> 
    </FunctionsPublishAssemblies>
</ItemGroup>
<Target Name="DeleteFile" AfterTargets="_AspNetCoreProjectSystemPostPublish">
        <Delete Files="$(PublishDir)MyConsoleApp.exe"></Delete>
</Target>

Luego, vuelve a publicar tu proyecto.

2

El exe se copia en la carpeta bin, sin embargo, aún permanece fuera del contenedor. ¿Hay alguna forma de mover en lugar de simplemente copiar?

Ram4sof

29/03/2021 a las 23:26

Eso se podría hacer. Solo agrega un archivo de destino adicional. Vea mi respuesta actualizada.

- Sara Liu - MSFT

30 de marzo de 2021 a las 7:52



------------------------------------

Tu idea no tiene sentido, esto es por diseño. Y una cosa que debe señalarse es que su archivo ejecutable se compiló en la carpeta bin, y la carpeta bin que mencionó es la carpeta bin de la aplicación de funciones. Puedes poner manualmente todos los archivos relevantes en bin y llamarlos en el código, pero en mi humilde opinión esto no tiene mucho sentido.

Compruebe su aplicación de funciones:

1

El EXE NO se compila en la carpeta bin cuando se publica la aplicación de funciones. Estoy de acuerdo en que la aplicación de consola se compila individualmente en su propia carpeta bin, pero eso no es útil ya que mi aplicación de función intenta ejecutar el archivo ejecutable desde el contenedor. Además, la referencia de la aplicación de consola se coloca debajo de bin... sobre todo, no está limpio tener archivos ejecutables en un ritmo y sus dependencias en otro lugar, por lo que tiene más sentido mantener los artefactos implementables en una carpeta para un enfoque de implementación más limpio

Ram4sof

29/03/2021 a las 18:26

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare