【问题标题】:Azure Website Deployment from Visual Studio - How to deploy just a single missing assembly?Visual Studio 中的 Azure 网站部署 - 如何仅部署一个缺少的程序集?
【发布时间】:2015-05-03 15:39:03
【问题描述】:

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

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

【问题讨论】:

  • 将该DLL复制到一个文件夹并从中添加引用
  • 您是否尝试在该参考文献中将“本地复制”设置为“真”?
  • 我偶尔会发生这种情况 - 并且仅在发布到部署槽时才会发生。如果我将“发布前预编译”设置搞得一团糟,它最终会成功发布 DLL。但与此同时,它是一个不可预测的 PITA。 (CopyLocal 始终为真。)

标签: visual-studio azure publish


【解决方案1】:

对于托管程序集,将 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 上包含二进制文件以及其他文件。将可见设置为 false 将隐藏解决方案资源管理器中的文件。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-05
    • 2013-11-28
    • 2014-05-21
    • 1970-01-01
    • 2017-10-07
    • 1970-01-01
    • 2014-03-29
    • 1970-01-01
    相关资源
    最近更新 更多