Nuget包添加了postbuild事件:
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包将被更新,现有的副本将会改变,所以我必须记住我需要重新添加它们。如何通过clickonce部署这些确切的目录(嵌入式sqlce需要完全这样的结构)和文件,并使该过程不依赖于包版本?
答案 0 :(得分:4)
在这里找到答案:
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>