Otros consejos

Le di crédito Hans para responder a esta pregunta, pero después de un poco de experimentación Tengo una solución que viene un poco más cerca de casa:

cómo compilar CIL / MSIL dentro del estudio VISUAL

El siguiente truco que consigue un proyecto que:

  • Respeta la configuración de lanzamiento vs versión de depuración en Visual Studio.
  • Opcionalmente firma el CIL resultante montaje con el archivo de claves establecido en las preferencias del proyecto.
  • Puede ser añadido al control de origen.

Siga estos pasos:

  1. Crear una biblioteca de C # classs vacío
  2. En la carpeta de soluciones, haga clic derecho en el proyecto y elegir la opción "Descargar proyecto"
  3. Haga clic derecho en el proyecto sin carga y selecciona "editar proyecto"
  4. En el archivo csprof, desplazarse hasta la parte inferior, y encontrar la línea que dice "Importar ... Proyecto =" $ (MSBuildBinPath) \ Microsoft.CSharp.targets", y sustituirlo por el código en http://pastebin.com/KEJtyQLu (copiado a continuación)

Aquí está el código XML:

  <Import Project="$(MSBuildToolsPath)\Microsoft.Common.targets" />

  <Target Name="CreateManifestResourceNames" />

  <Target Name="CoreCompile" Inputs="$(MSBuildAllProjects);@(Compile);" Outputs="@(IntermediateAssembly);$(NonExistentFile);">
    <GetFrameworkPath>
      <Output TaskParameter="Path" PropertyName="FrameworkPath" />
    </GetFrameworkPath>

    <PropertyGroup>
      <IlAsmCommand>&quot;$(FrameworkPath)\Ilasm.exe&quot; /NOLOGO /DLL /OUTPUT:&quot;@(IntermediateAssembly)&quot; </IlAsmCommand>
    </PropertyGroup>

    <PropertyGroup Condition=" '$(Configuration)' == 'Debug' " >
      <IlAsmCommand>$(IlAsmCommand) /DEBUG </IlAsmCommand>
    </PropertyGroup>

    <PropertyGroup Condition=" '$(Configuration)' == 'Release' " ><IlAsmCommand>$(IlAsmCommand) /OPTIMIZE </IlAsmCommand></PropertyGroup>

    <PropertyGroup Condition=" '$(AssemblyOriginatorKeyFile)' != '' " >
      <IlAsmCommand>$(IlAsmCommand) /KEY:&quot;$(AssemblyOriginatorKeyFile)&quot; </IlAsmCommand>
    </PropertyGroup>

    <Exec Command="$(IlAsmCommand) @(Compile->'&quot;%(FullPath)&quot;', ' ')" 
          Outputs="@(IntermediateAssembly)" />

    <CallTarget Targets="$(TargetsTriggeredByCompilation)" Condition="'$(TargetsTriggeredByCompilation)' != ''" />

  </Target>
scroll top