2016-07-06 3 views
3

Я написал библиотеку, использующую .NET Core RC2, и теперь я обновляю ее до RTM. В миграции не было проблем, кроме одного. По какой-то причине, Visual Studio (как и утилита DotNet) выдает ошибку о Guid в AssemblyInfo.cs:Ошибка GuidAttribute в AssemblyInfo.cs

в обоих «System.Runtime.InteropServices.PInvoke, версия существует тип«GuidAttribute» = 4.0.0.0, Culture = нейтрален, PublicKeyToken = b03f5f7f11d50a3a 'и' System.Runtime.InteropServices, Version = 4.1.0.0

Я не уверен, что здесь происходит.

Это то, что мой AssemblyInfo.cs выглядит следующим образом:

using System.Reflection; 
using System.Runtime.CompilerServices; 
using System.Runtime.InteropServices; 

// General Information about an assembly is controlled through the following 
// set of attributes. Change these attribute values to modify the information 
// associated with an assembly. 
[assembly: AssemblyConfiguration("")] 
[assembly: AssemblyCompany("")] 
[assembly: AssemblyProduct("My.Library")] 
[assembly: AssemblyTrademark("")] 

// Setting ComVisible to false makes the types in this assembly not visible 
// to COM components. If you need to access a type in this assembly from 
// COM, set the ComVisible attribute to true on that type. 
[assembly: ComVisible(false)] 

// The following GUID is for the ID of the typelib if this project is exposed to COM 
[assembly: Guid("f89c2fd8-91f3-4f5a-87b6-094ee19712cf")] 

Это все общее и было сгенерировано Visual Studio.

Мой project.json также довольно просто:

{ 
    "title": "My Library", 
    "version": "1.0.0-*", 
    "dependencies": { 
    "NETStandard.Library": "1.6.0", 
    "AWSSDK.Core": "3.2.4.1-beta", 
    "AWSSDK.EC2": "3.2.4.1-beta", 
    "System.Net.Primitives": "4.0.11", 
    "System.Threading.Tasks": "4.0.11", 
    "System.Collections": "4.0.11" 
    }, 
    "frameworks": { 
    "netstandard1.5": { 
     "imports": [ "dnxcore50", "portable-net45+win8" ] 
    } 
    }, 
    "buildOptions": { 
    "xmlDoc": true 
    } 
} 

Я действительно не знаю, что происходит, и я начинаю думать, что ошибка может ввести в заблуждение. Есть ли какая-то ошибка, которую я сделал, но просто не вижу? Как я могу отладить это?

+0

Я видел такие странные ошибки, которые были исправлены, очистив папки 'bin' /' obj'/'artifacts' (избавляясь от любых предыдущих сборок) и убедившись, что вы только создаете исходные файлы. Это что-то для вас? –

+0

К сожалению, нет :( – Astaar

ответ

2

Библиотека System.Runtime.InteropServices.PInvoke существует во время разработки .Net Core, а тип GuidAttribute был перенесен на него. Но this library was removed before the 1.0 version.

Проблема в том, что от этого зависит AWSSDK.Core 3.2.4.1-beta.

Я думаю, что лучший способ исправить это - перейти на AWSSDK.Core и AWSSDK.EC2 3.2.5-бета, которые зависят от версий версий .Net Standard версий 1.0, поэтому у них нет этой проблемы.

Другим возможным решением было бы удалить GuidAttribute из вашего кода (или скрыть его за #if), так как вы, скорее всего, не нуждаетесь в нем.

+0

Это было исправлено. Я не понимал, что между AWSSDK.Core 3.2.4 и 3.2.5 было такое большое изменение, и он не думал обновлять зависимость. детальное объяснение. – Astaar

Смежные вопросы