Conditionally embedding a resource in Visual Studio (C#)

有些话、适合烂在心里 提交于 2019-12-03 12:19:51

问题


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.


回答1:


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>



回答2:


You can conditionally embed the resource in your csproj-file depending on configuration, however I'm not sure if you're able to control it using #if statements in your code.

Maybe add a custom build-configuration instead (in addition to "Debug" and "Release")? And then just manually edit your csproj-file to embed it if $(Configuration == 'your custom buildconf').



来源:https://stackoverflow.com/questions/2375565/conditionally-embedding-a-resource-in-visual-studio-c

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!