有条件地在Visual Studio中嵌入资源(C#)

时间:2010-03-03 22:39:27

标签: c# .net embedded-resource

有没有办法有条件地将资源嵌入到.NET项目中?即如果我已经定义了INCLUDETHIS,那么我想在dll中嵌入一个特定的大文件,否则我不希望它嵌入。我知道我可以做两个项目,但我希望在一个项目中完成所有这些。使用该文件的代码很容易用#if INCLUDETHIS ... #endif来调节,但我甚至不想在dll中使用该文件,因为它包含敏感信息并且仅在内部使用。

2 个答案:

答案 0 :(得分:21)

这就是诀窍。您可以通过右键单击项目中的Visual Studio并选择“编辑”来编辑csproj。

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

答案 1 :(得分:1)

您可以根据配置有条件地将资源嵌入到csproj文件中,但是我不确定您是否能够使用代码中的#if语句来控制它。

也许添加自定义构建配置(除了“Debug”和“Release”)?然后只需手动编辑你的csproj文件,如果$(Configuration =='your custom buildconf')就嵌入它。