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