我正在寫一個使用ASP.NET Core 2.0的MVC網站。禁用.NET標準2中的傳遞項目引用
在ASP.NET Core項目中(我們稱之爲Web
),我在同一個解決方案中引用了.NET Standard 2項目(我們稱它爲Service
)。 Service
項目也引用瞭解決方案中的第三個.NET Standard 2庫(我們稱之爲Business
)。 Business
項目聲明瞭一個名爲Model
的類型。
的問題是,我可以在Web
項目中使用Model
(即編譯器看到類型Model
,我可以做var a = new Model();
)彷彿Web
項目中引用Business
,但它實際上只需要Service
參考。如何隱藏Model
Web
?這是ASP.NET Core 2中的一項新功能還是所有.NET Standard項目都是這樣的?
編輯
按照規定here,這是由於傳遞項目引用這是一個新的「功能」,在.NET標準,但如何解決?
我相信這是新項目格式('project.json'和'csproj'現在)的一個特性。任何嵌套的引用都可以直接在項目中使用(又名[transitive dependencies](https://github.com/dotnet/sdk/issues/200))。您可以嘗試[這種方式](https://github.com/dotnet/project-system/issues/2313)將其關閉以供單個參考。 –
[.Net Core 1.1中的傳遞引用]的可能重複(https://stackoverflow.com/questions/42428571/transitive-references-in-net-core-1-1) –