Msbuild 生成时将二进制文件复制到错误文件夹
最近的libgit2sharpnuget使用了一个新的Nuget特性,允许您在Nuget中包含一段构建脚本。其目的是将本机dll复制到bin文件夹的子文件夹,如下所示:Msbuild 生成时将二进制文件复制到错误文件夹,msbuild,appharbor,post-build-event,libgit2sharp,Msbuild,Appharbor,Post Build Event,Libgit2sharp,最近的libgit2sharpnuget使用了一个新的Nuget特性,允许您在Nuget中包含一段构建脚本。其目的是将本机dll复制到bin文件夹的子文件夹,如下所示: <ItemGroup> <None Include="$(MSBuildThisFileDirectory)\..\..\lib\net40\NativeBinaries\amd64\git2-e0902fb.dll"> <Link>NativeBinaries
<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)\..\..\lib\net40\NativeBinaries\amd64\git2-e0902fb.dll">
<Link>NativeBinaries\amd64\git2-e0902fb.dll</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>...
您可以看到目标文件夹总是/bin
——我认为这是Microsoft.WebApplication.targets文件中的一个错误(我无法在目标计算机上控制它)
是否有一个简单的修复程序,或者我是否应该在后期构建事件中恢复到脚本(我必须随每个新版本进行更新)?如下所述:
AppHarbor构建项目的方式触发了旧的\u CopyWebApplicationLegacy
目标,而这基本上被打破了。它会将使用“复制到输出目录”属性的所有文件直接放入输出目录,而不考虑相对的文件夹结构,从而弄乱它们。它也不会运行您可能有的任何web.config转换
通过将以下内容添加到项目文件中,可以使项目使用较新的\u CopyWebApplication
目标:
<UseWPP_CopyWebApplication>True</UseWPP_CopyWebApplication>
<PipelineDependsOnBuild>False</PipelineDependsOnBuild>
True
假的
我不确定的是,AppHarbor是否有理由不希望您使用较新的复制目标,而不是旧的损坏目标。请在“跟踪器”中打开一个问题?
<UseWPP_CopyWebApplication>True</UseWPP_CopyWebApplication>
<PipelineDependsOnBuild>False</PipelineDependsOnBuild>