Существует ли способ условно встроить ресурсы в проект.NET? Т.е. если я определил INCLUDETHIS тогда, я хочу определенный большой файл, встроенный в dll, иначе я не хочу встроенный. Я знаю, что могу сделать два проекта сделать это, но я надеюсь сделать все это в одном проекте. Код, который использует файл, легко обусловливается с #if INCLUDETHIS... #endif, но я даже не хочу файл в dll иначе, поскольку он содержит уязвимую информацию и только используется внутренне.
Это помогло. Вы можете редактировать свой csproj, щелкнув правой кнопкой мыши проект в Visual Studio и выбрав «Изменить».
<Choose>
<When Condition=" '$(Configuration)'!='ReleaseExternal' And '$(Platform)'=='x86' ">
<ItemGroup>
<EmbeddedResource Include="file.dll">
<Link>Resources\Other\file.dll</Link>
</EmbeddedResource>
</ItemGroup>
</When>
</Choose>
Вы можете условно внедрить ресурс в ваш csproj-файл в зависимости от конфигурации, однако я не уверен, что вы можете контролировать это с помощью утверждений #if в вашем коде.
Может быть, вместо этого добавить пользовательскую конфигурацию сборки (в дополнение к "Debug" и "Release")? А затем просто вручную отредактировать ваш csproj-файл, чтобы встроить его if $(Configuration == 'your custom buildconf').