Azure:发布时包含未引用的DLL

时间:2018-01-10 04:30:03

标签: visual-studio msbuild

我正在努力发布我的项目,因为缺少一些DLL。经过一些调查,我发现了我在寻找的东西:

http://sedodream.com/2010/05/01/WebDeploymentToolMSDeployBuildPackageIncludingExtraFilesOrExcludingSpecificFiles.aspx

这是我的代码:

  <Target Name="CustomCollectFiles">
    <Message Text="Publishing unreferenced DLLs" Importance="High" />
    <ItemGroup>
      <_CustomFiles Include="$(UnreferencedDlls)" />
      <FilesForPackagingFromProject Include="%(_CustomFiles.Identity)">
        <DestinationRelativePath>bin\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
      </FilesForPackagingFromProject>
    </ItemGroup>
  </Target>

现在工作正常,但只有当我在本地发布时。当我尝试在Azure上发布时,缺少这些相同的DLL。所以我尝试添加以下行:

<DestinationRelativePath>obj\Release\Package\PackageTmp\bin\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>

因为当我在azure上发布时,输出说:

  

将所有文件复制到下面的临时位置以进行包/发布:
  OBJ \发布\包\ PackageTmp。

但是,当我在Azure上发布时,DLL仍然缺失,我不知道如何添加它们。

1 个答案:

答案 0 :(得分:2)

我找到了解决方案。第一个在我在本地计算机上部署时添加DLL,第二个在我在Azure上部署应用程序时执行相同的操作。

  <PropertyGroup>
    <!-- Publish on the FILE SYSTEM -->
    <CopyAllFilesToSingleFolderForPackageDependsOn>
      CustomCollectFiles;
      $(CopyAllFilesToSingleFolderForPackageDependsOn);
    </CopyAllFilesToSingleFolderForPackageDependsOn>

    <!-- Publish on AZURE: Web Deploy -->
    <CopyAllFilesToSingleFolderForMSDeployDependsOn>
      CustomCollectFiles;
      $(CopyAllFilesToSingleFolderForMSDeployDependsOn);
    </CopyAllFilesToSingleFolderForMSDeployDependsOn>
  </PropertyGroup>