我試圖讓.Net Framework和NetStandard程序集彼此進行通信(瞭解什麼是可能的)。我目前有四個項目,兩項框架4.5.2項目和2個NetStandard1.2項目:NetStandard和.Net框架之間的引用
Framework452.Library
NetStandard12.CentralLibrary
NetStandard12.BaseLibrary
Framework452.Tests
的參考結構是:
Framework452.Tests
引用NetStandard12.CentralLibrary
:通過將NetStandard.Library nuget包添加到Framework452.Tests
。NetStandard12.CentralLibrary
參考文獻NetStandard12.BaseLibrary
:無修改地工作。NetStandard12.CentralLibrary
參考文獻Framework452.Library
:即使在Framework452.Library
安裝了NetStandard.Library nuget軟件包時也不起作用。
Can NetStandard項目可以引用框架項目嗎?如果是這樣,我需要做些什麼才能讓他們溝通?目前我可以添加引用,但代碼不可見。
更新
我重新的水溶液,並添加下面的代碼,當我嘗試編譯從Framework452.Tests
項目提供了以下錯誤:
錯誤CS0006:元數據文件 「〜 \ TryNETStandard \ NetStandard12.CentralLibrary \ bin \ Debug \ netstandard1.2 \ NetStandard12.CentralLibrary.dll' 找不到。
namespace Framework452.Library
{
public class Returner452 {
public static bool ReturnTrue() { return true; }
}
}
using Xunit;
namespace Framework452.Tests
{
public class Class1 {
[Fact]
public void FrameworkTest() {
Assert.True(NetStandard12.CentralLibrary.Class1.Return452());
}
[Fact]
public void NetStandardTest() {
Assert.True(NetStandard12.CentralLibrary.Class1.Return12());
}
}
}
namespace NetStandard12.BaseLibrary
{
public class Returner12 {
public static bool ReturnTrue() { return true; }
}
}
using Framework452.Library;
using NetStandard12.BaseLibrary;
namespace NetStandard12.CentralLibrary
{
public class Class1
{
public static bool Return452() { return Returner452.ReturnTrue(); }
public static bool Return12() { return Returner12.ReturnTrue(); }
}
}
我的設置是這樣的,我所做的一切都是'CentralLibrary'調用靜態方法,將從'BaseLibrary'返回'bool'和' Library'。然後在'Tests'中測試這些'bool's。稍後我會再談一次。 – Ayb4btu
您使用VS 2017嗎?對於VS 2017,我不認爲你需要爲netstandard引用Nuget元軟件包。 VS 2017工具集應該以.csproj格式解析新項目文件,並自動爲您執行'dotnet restore'。 – LxL
這裏是我的NetStandard12.CentralLibrary 的csproj <項目SDK = 「Microsoft.NET.Sdk」> <的PropertyGroup> netstandard1.2 TargetFramework> 的PropertyGroup> –
LxL