In Visual Studio, how can I set the Build Action for an entire folder?

前端 未结 5 658
野趣味
野趣味 2020-11-29 01:29

I have a project in Visual Studio. I need to deploy some 3rd party files along with my code. Typically I would put this files in a \"Resources\" directory and set the Buil

相关标签:
5条回答
  • 2020-11-29 02:11

    I just added this to my *.csproj file (right click Edit Project File)

    <ItemGroup>
        <Content Include="MYCUSTOMFOLDER\**">
            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        </Content>
    </ItemGroup>
    

    I know this answer is similar to @Arve but I don't know why this extra complexity with the .dll wildcard filter.

    0 讨论(0)
  • 2020-11-29 02:16

    Edit your *.csproj or .vbproj file

    Add this tag

      <ItemGroup>
        <Folder Include="YOUR_FOLDER_NAME_HERE/">
      </ItemGroup
    

    the final file must look like this:

    <Project>
    <---some more tags--->
          <ItemGroup>
            <Folder Include="YOUR_FOLDER_NAME_HERE\" />
          </ItemGroup
    <---some more tags--->
    </Project>
    
    0 讨论(0)
  • 2020-11-29 02:17

    If you happen to have the need to set the Build Action for an entire folder the best option is to just open the .csproj file and use a regex to replace all the occurences from

    <Content ....
    

    to

    <None ...
    

    That worked just perfectly for me.

    0 讨论(0)
  • 2020-11-29 02:21

    I use Visual Studio 2012 and you can shift-click to select multiple items in the Solution Explorer then edit each item's Copy To Output Directory property all at once in the Properties window.

    Granted this isn't equivalent to the solution you are looking for functionally, but semantically it is. And hopefully the next person to stumble across this post with a humongous folder to remedy (as is with me) won't have to dive into the .csproj file.

    Hope this helps!

    0 讨论(0)
  • 2020-11-29 02:25

    Create the project. Add one file as Content. Unload the project and edit the *proj file manually.

     <ItemGroup>
        <Content Include="myfolder**\*.dll**">
          <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        </Content>
      </ItemGroup>
    

    And then in the content-ItemGroup I would replace that singe file with some MsBuild wildcard expression, *.dll, or whatever.

    0 讨论(0)
提交回复
热议问题