0
我们有一个我们在内部开发和使用的nuget包。一个软件包有需要部署的附加的非托管DLL。在VS2015中,我右键单击Web应用程序项目并发布到测试服务器。包中的所有非托管DLL都没有发布,但它们位于我的机器上的bin文件夹中。自定义Nuget包文件没有通过Web部署额外的文件发布
这里就是我想在包的目标文件:
<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="ExtraFilesPublishTarget">
<Message Text="########### NUGET DEPLOY ###########"/>
<ItemGroup>
<DistFiles Include="$(MSBuildThisFileDirectory)..\lib\dist\**\*.*"/>
<FilesForPackagingFromProject Include="%(DistFiles.Identity)">
<DestinationRelativePath>\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
<Target Name="DistBuildTarget" AfterTargets="Build">
<ItemGroup>
<DistFiles Include="$(MSBuildThisFileDirectory)..\lib\dist\**\*.*"/>
</ItemGroup>
<Microsoft.Build.Tasks.Copy SourceFiles="@(DistFiles)" DestinationFiles="@(DistFiles->'$(OutputPath)\%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<PropertyGroup>
<copyallfilestosinglefolderforpackagedependson>
ExtraFilesPublishTarget;
$(copyallfilestosinglefolderforpackagedependson);
</copyallfilestosinglefolderforpackagedependson>
<copyallfilestosinglefolderformsdeploydependson>
ExtraFilesPublishTarget;
$(copyallfilestosinglefolderforpackagedependson);
</copyallfilestosinglefolderformsdeploydependson>
</PropertyGroup>
</Project>
当我发布,我看到的NuGet DEPLOY消息,但在输出窗口下一行是“目标‘ExtraFilesPublishTarget’跳过。以前建成成功。“
我发现另一篇文章看起来像涵盖了这个问题。 http://blog.mjjames.co.uk/2012/10/deploying-non-project-files-with-web.html 我现在唯一的问题是目标名称不是由VS发现的。当我们将内容复制到它的csproj文件时,它就起作用了。看起来像项目文件没有看到.target文件中的目标。 – BCarlson