O compilador no Visual Studio possui mais recursos que o compilador no Unity, o que significa que algum código (especialmente os recursos c # mais recentes) causará um erro no Unity, mas não no Visual Studio.
No entanto, você pode alterar sua estrutura de destino para corresponder à que mais se aproxima do que o Unity usa em seu editor. Fiz isso no Xamarin ao desenvolver bibliotecas para o Unity, mas parece que também é possível no Visual Studio.
No Visual Studio, nas propriedades do projeto DLL, defina a propriedade da estrutura Target como a versão da estrutura Unity que você está usando. Esta é a biblioteca de classes base do Unity que corresponde à compatibilidade da API que seu projeto visa, como as bibliotecas de classes básicas, micro ou web do Unity. Isso impede que sua DLL chame métodos de estrutura existentes em outras estruturas ou níveis de compatibilidade, mas que podem não existir na versão da estrutura do Unity que você está usando.
https://msdn.microsoft.com/en-us/library/dn940020.aspx
unity .net profile upgrade
no Google