Search code examples
c#.netembedded-resource

Conditionally embedding a resource in Visual Studio (C#)


Is there a way to conditionally embed resources into a .NET project? I.e. if I have defined INCLUDETHIS then I want a certain large file embedded into the dll, otherwise I do not want it embedded. I know I can make two projects to do this, but I'm hoping to do it all in one project. The code that uses the file is easily conditioned with a #if INCLUDETHIS ... #endif, but I don't even want the file in the dll otherwise as it contains sensitive information and is only used internally.


Solution

  • This did the trick. You can edit your csproj by right clicking in Visual Studio on the project and selecting "edit".

      <Choose>
        <When Condition=" '$(Configuration)'!='ReleaseExternal' And '$(Platform)'=='x86' ">
          <ItemGroup>
            <EmbeddedResource Include="file.dll">
              <Link>Resources\Other\file.dll</Link>
            </EmbeddedResource>
          </ItemGroup>
        </When>
      </Choose>