【问题标题】:Can't build debug version Azure Function in Visual Studio无法在 Visual Studio 中构建调试版本 Azure Function
【发布时间】:2018-10-01 05:31:22
【问题描述】:

我是第一次尝试 Azure Functions,并且能够毫无问题地构建和发布“发布”版本。

我想单步调试代码,因此需要创建和发布“调试”版本,但是当我尝试构建时,使用相同的代码会出现以下错误:

CS0579  Duplicate 'System.Reflection.AssemblyCompanyAttribute' attribute
CS0579  Duplicate 'System.Reflection.AssemblyConfigurationAttribute' attribute
CS0579  Duplicate 'System.Reflection.AssemblyFileVersionAttribute' attribute
CS0579  Duplicate 'System.Reflection.AssemblyInformationalVersionAttribute' attribute
CS0579  Duplicate 'System.Reflection.AssemblyProductAttribute' attribute
CS0579  Duplicate 'System.Reflection.AssemblyTitleAttribute' attribute
CS0579  Duplicate 'System.Reflection.AssemblyVersionAttribute' attribute

通过研究此错误,主要建议是从 AssemblyInfo.cs 文件中删除它们,但重建只是将它们重新放回,并且“发布”版本对这些设置感到满意。

我缺少什么以便创建代码的“调试”版本?

谢谢

【问题讨论】:

    标签: function azure serverless


    【解决方案1】:

    根据您关于CS0579 Duplicate错误的描述,我想在编译过程中生成的一些临时*.cs文件被意外添加到项目中。这些文件来自 obj\Debug 目录,您可以尝试删除这些文件以解决问题。更多详情可以参考这个SO thread

    在我的例子中,编译期间生成的一些临时 *.cs 文件被意外添加到项目中。

    这些文件来自 obj\Debug 目录,因此绝对不应该将它们添加到解决方案中。 *.cs 通配符有点疯狂并错误地添加了它们。

    如果它不起作用,您还可以尝试其他解决方案。例如右键单击项目名称>选择Edit FunctionName.csproj编辑csproj并关闭导致问题的属性的生成。更多解决方案可以参考这个article

    分辨率

    我在 GitHub 上发现了这个问题,其中有几个选项可以解决这个问题,我将在此处介绍,另外还有一个我尝试在问题中未提及的选项。

    【讨论】:

    • 我已经尝试了这些建议,但仍然遇到同样的错误。如果我删除 AssemlyInfo.cs 文件中的“程序集”引用,那么我可以构建一个调试版本,但“程序集”引用在 AssemblyInfo.cs 文件中被替换,因此除非我再次删除它们,否则后续构建将失败。
    • 我创建了一个httptrigger azure函数项目。如果我选择 debug mode 发布到 Azure 门户,它可以正常工作。你也选择了debug这个吗?
    【解决方案2】:

    我现在已经设法通过遵循 Janley 的链接之一并将 4 个额外的行添加到 .csproj 文件中来构建调试:

    <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
    <GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
    <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
    <GenerateAssemblyFileVersionAttribute>false</GenerateAssemblyFileVersionAttribute>
    <GenerateAssemblyInformationalVersionAttribute>false</GenerateAssemblyInformationalVersionAttribute>
    <GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>
    <GenerateAssemblyVersionAttribute>false</GenerateAssemblyVersionAttribute>
    

    【讨论】:

    • 如果我的回答对您有帮助,您可以将其标记为答案,以帮助其他社区成员查找。谢谢!
    猜你喜欢
    • 2022-12-04
    • 1970-01-01
    • 2020-12-03
    • 1970-01-01
    • 2019-05-17
    • 1970-01-01
    • 2022-06-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多