2016-10-23 11 views
0

enter image description hereカスタムMSBuildのは、ディレクトリ内のファイル

を含まないターゲットしかし私は、彼らがまだ含まれていないビルドを実行した後、特定のディレクトリからすべてのファイルを含めるようにカスタムMSBuildのターゲットを追加しました。

<Target Name="BeforeBuild"> 
    <ItemGroup> 
     <!--<Content Include="Content\lib\**\*.js" /> 
     <Content Include="Content\lib\**\*.css" />--> 
     <Content Include="Content\lib\**" /> 
    </ItemGroup> 
    </Target> 

背景

(手動で追加することなく、構成要素は、プロジェクトに含める取得するバウアーを使用しようとする)

[MVC Asp.net 4.5.2、5、 Visual Studioの2015(更新3)]

答えて

1

まず

<Target Name="CustomCollectAngularFiles"> 
    <ItemGroup> 
     <WebFiles Include="Content\lib\**\*" /> 
     <FilesForPackagingFromProject Include="%(WebFiles.Identity)"> 
     <DestinationRelativePath>%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath> 
     </FilesForPackagingFromProject> 
    </ItemGroup> 
</Target> 
以下のようなカスタムタスクを作成します。

そしてあなたのcsprojファイルで提供され、それは以下のようになります。これ<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />後プロパティグループを追加します。ここで重要なのは、あなたが、ビルドにコピーされたばかりのファイルを見ることができるはずCopyAllFilesToSingleFolderForMsdeployDependsOn

<PropertyGroup> 
    <CopyAllFilesToSingleFolderForMsdeployDependsOn> 
CustomCollectAngularFiles 
    </CopyAllFilesToSingleFolderForMsdeployDependsOn> 
    </PropertyGroup> 

です。詳細については

はあなたの説明に基づいてhttps://blog.samstephens.co.nz/2010/10/18/msbuild-including-extra-files-multiple-builds/

+0

私の.csprojファイルには何も書かれていません。それの外見から、ちょうどランダムな6歳のブログ記事に行き、その答えにスニペットをコピーしました。 – JARRRRG

+0

私は現在のプロジェクトで上記のターゲットとプロパティグループを使用し、それを紺色に配置しています。あなたはあなたのcsprojにそれらのすべてを追加する必要があります。 を見つけることができますか?上記のコードをその下に追加すると、展開中にファイルを取得する必要があります。できます。あなたは、私は全くの私.csprojにNuGet.targetsを持っていない、再び –

+0

非常にシームレスにそれに触れるために持っていけない、我慢してと試してみて、私はそれが動作たら、それは、動作するまでのMSBuildはイライラさせられる知っています。また、私はAzureに展開していません。私はこれらのファイルをプロジェクトに自動的に含めるようにしていますが、「プロジェクトに右クリック→包含」を押す必要はありません。したがって、新しいファイルが同じディレクトリのcontent \ libにポップアップすると、その新しいファイルは少なくともビルド後にプロジェクトに自動的に含まれます。 – JARRRRG

1

を参照してください、そうであるならば、私の知る限り、私はあなたが使用する必要があると思う、あなたはMSBuildのを使用して、プロジェクトにファイルを含めたいようです

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" /> 
    <Import Project="..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" /> 
    <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> 

    <UsingTask TaskName="Hello" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll" > 
    <ParameterGroup /> 
    <Task> 
     <Reference Include="System.Xml" /> 
     <Reference Include="Microsoft.Build" /> 
     <Using Namespace="Microsoft.Build" /> 
     <Using Namespace="Microsoft.Build.Evaluation" /> 
     <Using Namespace="Microsoft.Build.Utilities" /> 
     <Code Type="Fragment" Language="cs"> 
      <![CDATA[ 
     string appPath = @"C:\Projects\MsBuild\App2\App2\App2.csproj"; 
     var project = new Project(appPath); 
     var loc = "test"; 
     project.AddItem("Folder", loc); 
     project.Save(); 
     Log.LogMessage("Hello, world!", MessageImportance.High); 
     ]]> 
     </Code> 
    </Task> 
    </UsingTask> 

    …… 
    <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
     Other similar extension points exist, see Microsoft.Common.targets. --> 
    <Target Name="BeforeBuild"> 
    <Hello /> 
    </Target> 
    <!--<Target Name="AfterBuild"> 
    <Message Text="About to run MsBuildTask" Importance="high" /> 
    <App2.MsBuildTask/> 
    </Target> 
    --> 
</Project> 
+0

私はこれを今夜行っています。 – JARRRRG

関連する問題