2010-03-03 16 views
14

¿Hay alguna manera de incrustar recursos de manera condicional en un proyecto .NET? Es decir. si he definido INCLUDETHIS, quiero un determinado archivo grande incrustado en el dll; de lo contrario, no quiero que esté incrustado. Sé que puedo hacer dos proyectos para hacer esto, pero espero hacerlo todo en un solo proyecto. El código que usa el archivo se condiciona fácilmente con #if INCLUDETHIS ... #endif, pero ni siquiera quiero el archivo en el dll, ya que contiene información confidencial y solo se usa internamente.Incrustación condicional de un recurso en Visual Studio (C#)

Respuesta

18

Esto hizo el truco. Puede editar en Visual Studio haciendo clic derecho del proyecto y editar o utilizar un editor externo como Notepad ++:

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

puede editar csproj en Visual Studio, pero hay que descargar ese proyecto en primer lugar. – Sarrus

+0

Siempre he podido editar con notepad ++ mientras está cargado – jjxtra

+0

Quiero decir No es necesario utilizar el editor de texto externo – Sarrus

1

Puede incrustar el recurso de manera condicional en su archivo csproj, dependiendo de la configuración, sin embargo, no estoy seguro si puede controlarlo usando las instrucciones #if en su código.

¿Tal vez agregar una configuración de compilación personalizada en su lugar (además de "Depurar" y "Liberar")? Y luego solo edite manualmente su archivo csproj para incrustarlo si $ (Configuration == 'your buildconf personalizado').

Cuestiones relacionadas