2012-02-22 55 views
2

NuGet包添加postbuild事件:的ClickOnce無法看到文件,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需要完全這樣的結構)和文件,並使該過程不依賴於包版本?

回答

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>