<?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">net_4_0_Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <BuildDirectory Condition=" '$(BuildDirectory)' == '' ">$(MSBuildThisFileDirectory)</BuildDirectory> <FileAlignment>512</FileAlignment> <SchemaVersion>2.0</SchemaVersion> <OutputType>Library</OutputType> <SignAssembly>true</SignAssembly> <AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)\mono.snk</AssemblyOriginatorKeyFile> <OutputType>Library</OutputType> <OutputPath>$(BuildDirectory)\bin\$(Configuration)\</OutputPath> <MSBuildCSharpTargets>$(MSBuildToolsPath)\Microsoft.CSharp.targets</MSBuildCSharpTargets> </PropertyGroup> <PropertyGroup Condition=" $(Configuration.EndsWith('Debug')) "> <DebugSymbols>true</DebugSymbols> <DebugType>full</DebugType> <Optimize>false</Optimize> <DefineConstants>$(DefineConstants);DEBUG;TRACE;</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> </PropertyGroup> <PropertyGroup Condition=" $(Configuration.EndsWith('Release')) "> <DebugType>pdbonly</DebugType> <Optimize>true</Optimize> <DefineConstants>$(DefineConstants);TRACE;</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <RunCodeAnalysis>false</RunCodeAnalysis> </PropertyGroup> <PropertyGroup Condition=" $(Configuration.StartsWith('net_3_5')) "> <TargetFrameworkVersion>v3.5</TargetFrameworkVersion> <DefineConstants>$(DefineConstants);</DefineConstants> </PropertyGroup> <PropertyGroup Condition=" $(Configuration.StartsWith('net_4_0')) "> <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> <DefineConstants>$(DefineConstants);NET_4_0;</DefineConstants> </PropertyGroup> <PropertyGroup Condition=" $(Configuration.StartsWith('pcl')) "> <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> <TargetFrameworkProfile>Profile344</TargetFrameworkProfile> <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> <DefineConstants>$(DefineConstants);NET_4_0;PCL;</DefineConstants> <MSBuildCSharpTargets>$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets</MSBuildCSharpTargets> </PropertyGroup> <!-- Shared References --> <ItemGroup> <Reference Include="System.Core" /> <Reference Include="System" /> </ItemGroup> <!-- The following keeps Visual Studio happy; let's keep Visual Studio happy --> <PropertyGroup Condition=" '$(Configuration)' == 'net_3_5_Debug' "> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)' == 'net_4_0_Debug' "> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)' == 'pcl_Debug' "> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)' == 'net_3_5_Release' "> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)' == 'net_4_0_Release' "> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)' == 'pcl_Release' "> </PropertyGroup> <!-- This optional import allows products that distribute Cecil to tweak settings that will affect its build, without having to fork the project unnecessarily. The Mono.Cecil.overrides file is a plain MSBuild file with additional properties, and can exist anywhere upwards from the current Cecil repo clone path, making it very flexible even if the project is submoduled. --> <PropertyGroup> <CecilOverrides Condition="'$(CecilOverrides)' == ''">$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), Mono.Cecil.overrides))\Mono.Cecil.overrides</CecilOverrides> </PropertyGroup> <Import Project="$(CecilOverrides)" Condition="Exists('$(CecilOverrides)')" /> <!-- This is an example of a custom override file --> <!-- <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <AssemblyName>$(AssemblyName.Replace('Mono', 'MyCompany'))</AssemblyName> <AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)MyCompany.snk</AssemblyOriginatorKeyFile> </PropertyGroup> <ItemGroup> <Compile Include="$(MSBuildThisFileDirectory)MyCompany.AssemblyInfo.cs" /> </ItemGroup> </Project> The additional AssemblyInfo.cs added to the Compile group provides the InternalsVisibleTo so that the Mdb/Pdb projects can compile successfully: using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: InternalsVisibleTo ("MyCompany.Cecil.Pdb, PublicKey=....")] [assembly: InternalsVisibleTo ("MyCompany.Cecil.Mdb, PublicKey=...")] [assembly: InternalsVisibleTo ("MyCompany.Cecil.Rocks, PublicKey=...")] [assembly: InternalsVisibleTo ("MyCompany.Cecil.Tests, PublicKey=...")] --> </Project>