Вывод MSBuild ZipDirectory отличается при построении решения и создании индивидуального проекта - PullRequest
0 голосов
/ 17 февраля 2020

У меня возникла проблема с командой MSBuild ZipDirectory, в которой сжатый файл вывода различается при построении по отдельному проекту и при построении для всего решения.

Например, ожидаемый zip-файл выглядит следующим образом:

A.txt

B.txt

C.txt

Застегнутый файл выглядит, как и ожидалось, при сборке как отдельный проект.

Однако, когда решение строится как единое целое, заархивированный файл выглядит как показано ниже, при этом некоторые файлы отсутствуют:

A.txt

B.txt

Что вызывает такую ​​проблему ??

1 Ответ

1 голос
/ 18 февраля 2020

Вывод MSBuild ZipDirectory отличается при построении решения и построении отдельного проекта

Интересно, используете ли вы Задание ZipDirectory для сжатия некоторых определенных файлов в вашем проекте. Я протестировал команду в разных проектах в одном решении и не столкнулся с той же проблемой, что и вы. Поэтому, пожалуйста, проверьте это:

1) Если вы просто сжимаете некоторые файлы содержимого в проекте, попробуйте создать новую папку в Solution Explorer с именем resource и затем поместите любые файлы, которые вы хотите сжать в это. И не забудьте установить, что эта цель выполняется после процесса сборки.

<Target Name="ZipOutputPath" AfterTargets="Build">
    <ZipDirectory
        SourceDirectory="$(MSBuildProjectDirectory)\resource"
        DestinationFile="$(MSBuildProjectDirectory)\output.zip" />
  </Target>

2) Если вы хотите сжать файлы выходной папки, убедитесь, что вы установили Copy to Output Directory из указанных c файлов в Copy if newer .

Примечание : пожалуйста, проверьте, есть ли дополнительные цели, которые будут удалять некоторые файлы, такие как C.txt, или есть дополнительные условия, чтобы ограничить это.

Build Solution означает, что он может создавать все проекты одновременно, поэтому мне интересно, есть ли у некоторых дополнительных проектов какая-либо конфигурация, которая вызовет такое поведение в первом проекте.

3) Кроме того, , вы также можете попробовать zip task, чтобы понять это:

<Target Name="zipfiles" AfterTargets = "Build">
 <ItemGroup>
    <ZipFiles Include="xxxxx\A.txt" />
    <ZipFiles Include="xxxxx\B.txt" />
    <ZipFiles Include="xxxxx\C.txt" />
  </ItemGroup>
  <Zip OutputFilename="$(OutputPath)Project.zip" Files="@(ZipFiles)" />
 </Target>

Кроме того , если все это не помогло, может возникнуть ситуация, когда вы можете иметь проблема с вашей средой VS Благодаря этому вы можете выполнить следующие действия:

A) закрыть экземпляр VS, удалить скрытую папку .vs в пути решения, папку bin и obj. Затем перезапустите решение и затем соберите заново, чтобы увидеть, сохраняется ли проблема.

B) используйте devenv / safemode для запуска VS и затем проверьте, вызвана ли проблема сторонними расширениями, пакетами.

C) сделать ремонт в VS Installer.

Если я неправильно понимаю вашу проблему, пожалуйста, поделитесь Более подробную информацию и дайте нам знать.

...