2017-08-13 60 views
2

我不能得到Microsoft.EntityFrameworkCore 2.0與2.0 NETStandard.Library[類型]中存在的類型都[Assembly1]和[netstandard 2.0組件]

錯誤CS0433類型 'AttributeUsageAttribute' 在兩個存在的工作'System.Runtime,Version = 4.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'和'netstandard,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = cc7b13ffcd2ddd51'Contrived.Model.Schema D:\ Contrived \ Contrived \ Framework \ Contrived.Model.Schema \屬性\ EntityColumnAttribute.cs

我的.csproj:

<Project Sdk="Microsoft.NET.Sdk"> 

    <PropertyGroup Label="Globals"> 
    <SccProjectName>SAK</SccProjectName> 
    <SccProvider>SAK</SccProvider> 
    <SccAuxPath>SAK</SccAuxPath> 
    <SccLocalPath>SAK</SccLocalPath> 
    </PropertyGroup> 

    <PropertyGroup> 
    <TargetFramework>netstandard2.0</TargetFramework> 
    </PropertyGroup> 

    <ItemGroup> 
    <PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="2.0.0" /> 
    </ItemGroup> 

    <ItemGroup> 
    <PackageReference Update="NETStandard.Library" Version="2.0.0" /> 
    </ItemGroup> 

</Project> 

,如果我創建一個新的解決方案和netstandard 2.0庫也恰好然後用等同身份加入entityframeworkcore 2.0

錯誤CS1703多個組件已導入:「d:\用戶\ maksymiuk_a.nuget \ packages \ netstandard.library \ 2.0.0 \ build \ netstandard2.0 \ ref \ System.Threading.Tasks.dll'和'D:\ Users \ maksymiuk_a.nuget \ packages \ system.threading.tasks \ 4.3.0 \ REF \ netstandard1.3 \ System.Threading.Tasks.dll」。刪除重複引用之一。 ClassLibrary1的d:上引用\做作\做作\ ClassLibrary1的\ ClassLibrary1的\ CSC

+0

您安裝了哪個版本的VS和.net核心SDK?同樣,刪除「NETStandard.Library」的引用更新,這需要由SDK隱式處理。 –

+0

Visual Studio版本15.2(26430.16)也可以在哪裏看到SDK版本?以及如何刪除參考更新? – maksymiuk

+0

您需要2.0.0 SDK的最新15.3預覽版才能正常工作 –

回答

2

更新:Visual Studio 2017 15.32.0.0 SDK已被釋放。使用這些版本來擺脫這種衝突。

這似乎是在所有部件發佈之前使用預覽工具和「RTM」包混合時發生的構建問題之一。

要獲取2.0.0最好的支持,在寫作的時候,做下列操作之一:

此要求的原因是2.0.0 SDK知道這些衝突並修改衝突引用(此例中爲System.*.dll)在項目之外。

+0

謝謝,我很快確定這是正確的答案因爲我得到它工作不好接受這一個 – maksymiuk

+1

更新與現在正式發佈的版本的鏈接。 –

-1

也許不是最好的主意擺在那裏,但嘗試通過手動刪除提及System.Runtime右鍵單擊並找到它。

+0

如果我去參考管理器 - >程序集 - >框架,那麼它告訴我'在機器上找不到框架組件' – maksymiuk

+0

你在使用什麼IDE? –

+0

Visual Studio 2017 – maksymiuk

-1

可能是您的Microsoft.Net.Compilers package需要升級。如果其未升級首先升級它並檢查是否存在錯誤。

如果錯誤仍然存​​在,請嘗試從References文件中刪除System.Threading.Tasks.dll您的解決方案裏面本身

+0

if我嘗試從依賴關係中刪除它告訴我'不能修改源自導入文件的評估對象「D:\ Users \ maksymiuk_a \ .nuget \ packages \ netstandard.library \ 2.0.0 \ build \ NETStandard.Library.targets」。 '而且解決方案沒有任何文件夾,除了我的項目 – maksymiuk

+0

重新啓動Visual Studio將解決此問題。 –

+0

我已重新啓動多次,清理解決方案,沒有任何工程 – maksymiuk

0

即使使用DOT NET Core 2+也會出現此問題,這是在項目中引用的包依賴於同一包的不同版本(特別是同一名稱空間)時引起的。

有2.5的解決方案,我所知道的:

1)如果控制這兩個包,然後同時更新,以確保他們使用的是依賴相同版本(或更改其中一個版本的命名空間這種依賴,像:Your.Thing.v3.Models

2)如果你能找到這些軟件包的一個或兩個上的一個開源的網站,如GitHub,您可以下載它們並更新他們使用的是依賴相同版本(或命名空間的東西從上面的選項1)

2.5)如果你不合作或者有權訪問這些軟件包的來源,並且我意識到這不是一個真正的解決方案...(因此.5),那麼最後一個選擇是停止使用這些軟件包中的一個。

如果還有其他方法,我很想知道它。

相關問題