来自 Visual Studio 的 Azure 网站部署 - 如何只部署一个缺少的程序集?

Azure Website Deployment from Visual Studio - How to deploy just a single missing assembly?

我有一个使用 Visual Studio 和 .NET (C#) 构建的 Azure 网站。我注意到,无论出于何种原因,当 BS 构建应用程序时,程序集都没有放入 /Bin 文件夹中。所以我将文件复制到我的 Bin 文件夹中。但是,当我部署时,我手动复制到 /Bin 文件夹的文件没有包含在部署中。或者至少我认为不是。

有什么方法可以让我在发布时告诉 VS 包含这个文件吗?或者有什么方法可以告诉 VS 重新发布整个应用程序,而不仅仅是它检测到的文件已更改?

对于托管程序集,将引用的 CopyLocal 设置为 true 可修复它。

如果是非托管二进制文件,则可以采用以下方法:

  • .csproj 文件中查找 AfterBuild,并包含一个命令以将二进制文件复制到 bin 目录。

    <Message Text="Copy $(SolutionDir)Lib\binary.dll to $(OutDir)binary.dll" Importance="high"/>
    <Copy SourceFiles="$(SolutionDir)Lib\binary.dll" DestinationFiles="$(OutDir)binary.dll" />
    
  • 将二进制文件与其他文件一起包含在 .csproj 中。将 visible 设置为 false 将隐藏解决方案资源管理器中的文件。

    <Content Include="Bin\binary.dll">
      <Visible>false</Visible>
    </Content>