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