2017-08-17 4 views
0

私たちは内部で開発し使用しているナゲットパッケージを持っています。 1つのパッケージには、展開が必要な追加のアンマネージ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』はスキップさ:

は、ここで私は、パッケージのターゲットファイルにしようとしているものです。以前は正常に構築されました。

+0

私はこの問題をカバーするような別の記事を見つけました。 http://blog.mjjames.co.uk/2012/10/deploying-non-project-files-with-web.html 私が今問題としているのは、ターゲット名がVSによって見つからないということだけです。コンテンツをcsprojファイルにコピーすると、それは動作します。プロジェクトファイルが.targetファイル内のターゲットを認識していないようです。 – BCarlson

答えて

0

上記のリンク(http://blog.mjjames.co.uk/2012/10/deploying-non-project-files-with-web.html)が私の問題を解決しました。

ターゲットが見つかりませんでした。テストで時間を節約するために、自分の.targetsファイルを私の解決策のpackagesフォルダに編集します。ローカルの.targetsファイルにターゲットを追加または名前を変更すると、VS2015はターゲット名をキャッシュするので変更を検出しません。 VSを閉じるか、パッケージを見つけられるように再インストールする必要があります。ターゲット内の要素を変更することはできますが、ターゲットの名前を変更したりターゲットを追加することはできません。

関連する問題