ClickOnce не может видеть файлы, скопированные во время события PostBuild - PullRequest
2 голосов
/ 22 февраля 2012

Пакет Nuget добавил событие пост-сборки:

if not exist "$(TargetDir)x86" md "$(TargetDir)x86"
xcopy /s /y "$(SolutionDir)packages\SqlServerCompact.4.0.8482.1\NativeBinaries\x86\*.*" "$(TargetDir)x86"
if not exist "$(TargetDir)amd64" md "$(TargetDir)amd64"
xcopy /s /y "$(SolutionDir)packages\SqlServerCompact.4.0.8482.1\NativeBinaries\amd64\*.*" "$(TargetDir)amd64"

, и оно работает, когда я просто компилирую.
Когда я хочу опубликовать - эти каталоги (x86, amd64) не появляются в файлах приложений.Я не хочу копировать существующие файлы, потому что пакет nuget будет обновлен, а существующие копии будут изменены, так что мне нужно будет помнить, что мне нужно добавить их заново.Как развернуть эти точные каталоги (встроенная sqlce нуждается именно в такой структуре) с файлами через clickonce и сделать этот процесс не зависящим от версии пакета?

1 Ответ

4 голосов
/ 22 февраля 2012

Нашел ответ здесь: https://stackoverflow.com/a/2514027/47672
В моем случае код был:

<ItemGroup>
    <Content Include="$(TargetDir)x86\*.dll">
      <Link>x86\%(FileName)%(Extension)</Link>
      <Visible>false</Visible>
    </Content>
</ItemGroup>
<ItemGroup>
    <Content Include="$(TargetDir)x86\Microsoft.VC90.CRT\*.dll">
      <Link>x86\Microsoft.VC90.CRT\%(FileName)%(Extension)</Link>
      <Visible>false</Visible>
    </Content>
</ItemGroup>
...