Existe-t-il un moyen d'intégrer conditionnellement des ressources dans un projet .NET? C'est à dire. si j'ai défini INCLUDETHIS alors je veux un certain gros fichier incorporé dans la DLL, sinon je ne veux pas qu'il soit incorporé. Je sais que je peux faire deux projets pour le faire, mais j'espère pouvoir tout faire en un seul projet. Le code qui utilise le fichier est facilement conditionné avec un #if INCLUDETHIS ... #endif, mais je ne veux même pas le fichier dans la DLL sinon il contient des informations sensibles et est seulement utilisé en interne.Intégration conditionnelle d'une ressource dans Visual Studio (C#)
14
A
Répondre
18
Cela a fait l'affaire. Vous pouvez modifier dans Visual Studio par clic droit de projet et modifier ou utiliser un éditeur externe comme Notepad ++:
<Choose>
<When Condition=" '$(Configuration)'!='ReleaseExternal' And '$(Platform)'=='x86' ">
<ItemGroup>
<EmbeddedResource Include="file.dll">
<Link>Resources\Other\file.dll</Link>
</EmbeddedResource>
</ItemGroup>
</When>
</Choose>
1
Vous pouvez conditionnellement intégrer la ressource dans votre fichier csproj en fonction de la configuration, mais je ne suis pas sûr si vous êtes en mesure de le contrôler en utilisant des instructions #if dans votre code. Peut-être ajouter une configuration de construction personnalisée à la place (en plus de "Débogage" et "Release")?
Et puis éditez manuellement votre fichier csproj pour l'intégrer si $ (Configuration == 'votre buildconf personnalisé').
Vous pouvez modifier csproj dans Visual Studio, mais vous devez décharger ce projet en premier. – Sarrus
J'ai toujours été capable de modifier avec le bloc-notes ++ pendant qu'il est chargé – jjxtra
Je veux dire qu'il n'est pas nécessaire d'utiliser l'éditeur de texte externe – Sarrus