WebDeploy: исключить конкретную DLL из пакета развертывания

Как мне указать Web Deploy исключить конкретный файл DLL из пакета веб-развертывания?

В этом ответе https://stackoverflow.com/a/27404527 содержится совет по исключению драйвера базы данных DB2 IBM.Data.DB2. dll из папки bin веб-приложения. В противном случае вы получите исключение BadImageFormatException в IIS, потому что Visual Studio упаковывает неправильную версию DLL с веб-приложением. Я просто столкнулся с этой проблемой и попытался последовать совету.

К сожалению, я не смог убедить Web Deploy опустить именно эту DLL. Я прочитал это сообщение в блоге

http://sedodream.com/2010/05/01/dingWebDeploymentToolMSDeploymentToolMSDextrafiles/01/dingWebDeploymentToolMSDepiles >

и добавил это

<ItemGroup>
    <ExcludeFromPackageFiles Include="$(OutputPath)IBM.Data.DB2.dll">
        <FromTarget>Project</FromTarget>
    </ExcludeFromPackageFiles>
</ItemGroup>

но безуспешно. Я все еще могу найти драйвер БД unter _PublishedWebsites \ MyWebApp \ bin \ IBM.Data.DB2.dll в папке Binaries.


person Olaf    schedule 12.05.2015    source источник


Ответы (1)


Через некоторое время я снова попытался решить свою проблему, и теперь она работает. Вот решение. Я поместил его в файл с именем projectname.wpp.targets вместе с файлом определения проекта projectname.csproj.

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <ItemGroup>
    <ExcludeFromPackageFiles Include="bin\IBM.Data.DB2.dll">
      <FromTarget>Project</FromTarget>
    </ExcludeFromPackageFiles>
  </ItemGroup>

</Project>
person Olaf    schedule 27.06.2015
comment
Спасибо! Я попробовал это в первый раз, но с / вместо \. Ваш пост помог мне заработать. - person Gerard Sexton; 14.12.2015