2017-06-14 34 views
1

我的目標是引用來自dotnetcore類庫的共享項目。在dotnetcore classlib中引用共享項目,並在windows和linux上構建工作

爲了做到這一點,我打開了我在windows上使用.NET命令行工具(1.0.4)在Linux上製作的解決方案,因爲我讀到了vs2017支持的對shprojs的引用。所以我增加了一個參考使用VS並把它添加此行到.netcore庫的csproj文件:

<Import Project="..\Objects\LogoRecognitionShared.projitems" Label="Shared" /> 

在這一點上,我認爲一切都將正常工作。我建立在視覺工作室,並沒有問題。我認爲,因爲我的cli版本在windows和linux上是一樣的,所以項目將以相同的方式構建並支持相同的功能。

但是,當我在linux上嘗試這些更改時,收到了一堆「error CS0246: The type or namespace name 'TypeName' could not be found (are you missing a using directive or an assembly reference?)」消息。

我也使用<Compile Include="..\Objects\*.cs"/>語句並得到相同的錯誤。但是,如果我使用兩個然後我得到warning CS2002: Source file 'Objects/*.cs' specified multiple times

我不確定如何解決此問題。在我看來,構建過程知道它應該將這些文件構建到輸出中,但是當構建實際發生時,它會將它們留出並導致引用失效。

任何幫助將是太棒了。

回答

1

嗯,我想知道是什麼導致了我的問題。我的一個共享項目的RootNamespace值不正確。所以我從vs2017中糾正了它,然後做了一個乾淨的構建,讓我驚訝它在linux上工作...

相關問題