【问题标题】:Publish project references of azure function within bin folder在 bin 文件夹中发布 azure 函数的项目引用
【发布时间】:2021-06-24 13:14:58
【问题描述】:

当我发布 Azure 函数应用程序时,我有一个 azure 函数应用程序引用另一个控制台项目 (MyConsoleApp) 作为“项目参考”,控制台项目被编译并放置在 bin 文件夹的一侧。发布 Azure Function 应用程序时如何将 MyConsoleApp.exe 文件复制到 bin 文件夹?

这是VS项目结构

发布输出:

【问题讨论】:

    标签: azure visual-studio msbuild azure-functions


    【解决方案1】:

    您可以通过 MSBuild 对其进行扩展。将此添加到您的 <azure function>.csproj 文件中:

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

    之后,点击发布按钮,在发布过程中你会发现MyConsoleApp.exepublish\bin文件夹下。

    更新

    &lt;azure function&gt;.csproj 文件下添加这些:

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

    然后,重新发布您的项目。

    【讨论】:

    • exe 复制到 bin 文件夹,但是 exe 仍然停留在 bin 之外。无论如何要移动而不是复制?
    • 可以做到。您只需添加一些额外的目标文件。请参阅我的更新答案。
    【解决方案2】:

    您的想法毫无意义,这是设计使然。而且,需要指出的一点是,你的exe已经编译到了bin文件夹中,而你提到的bin文件夹就是函数app的bin文件夹。您可以手动将所有相关文件放入 bin 并在代码中调用它们,但是恕我直言,这没有多大意义。

    请检查您的函数应用:

    【讨论】:

    • Function 应用发布时,EXE 未编译到 bin 文件夹中。我同意控制台应用程序单独编译到它自己的 bin 文件夹中,但这没有用,因为我的函数应用程序试图从 bin 执行 exe,控制台应用程序的引用也放在 bin 下。总之,有 exes 并不干净一种速度及其依赖关系在其他地方,因此将可部署的工件保存在一个文件夹中以实现更简洁的部署方法更有意义
    猜你喜欢
    • 1970-01-01
    • 2019-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多