[英]Dependency of project reference not being copied into output folder
在將其標記為欺騙之前,我確實找到了這個問題並嘗試了該方法,但該方法不起作用
這一切都發生在Test項目中,因為具有OneTimeSetup屬性,正在調用有問題的方法-不確定是否相關,但信息越多越好
項目A
參考-System.Collections.Immutable v 1.3.33-使用ScriptC的依賴項,但也直接在代碼cs proj中使用,因此具有此條目
<Reference Include =“ System.Collections.Immutable,版本= 1.1.33.0,區域性=中性,PublicKeyToken = b03f5f7f11d50a3a,processorArchitecture = MSIL”> <HintPath> ... \\ packages \\ ScriptCs.Engine.Roslyn.0.16。 1 \\ lib \\ net45 \\ System.Collections.Immutable.dll </ HintPath>
<Private> True << Private> </ Reference>
項目A包含一個基類
[SetUpFixture]
public abstract class BaseClass
{
[OneTimeSetup]
public void DoSomething()
{
var MyClass = new MyClass();
MyClass.DoStuff();
//etc etc
}
}
它還包含類MyClass-此類直接使用System.Collections.Immutable中的類型
public class MyClass
{
private ImmutableDictionary<string,string> myImmutableDictionary = ImmutableDictionary.Create<string,string>();
public void DoStuff()
{
//does things
}
}
項目B-沒有直接引用System.Immutable.Collections-項目有引用到項目A
在項目B中,我們有一個繼承自項目B中的BaseClass的類
[SetUpFixture]
public class SubClass : BaseClass
{
[OneTimeSetup]
public void SomeMethod()
{
DoSomething(); //Here it goes bang
}
}
因此,我們收到了一個問題,即由於相同原因我們在構建服務器上的所有測試均失敗的問題
無法加載文件或程序集“ System.Collections.Immutable,版本= 1.1.33.0,文化=中性,PublicKeyToken = b03f5f7f11d50a3a”或其依賴項之一。 該系統找不到指定的文件。
我在本地運行,並遇到了同樣的問題。 我調查了Project B的輸出文件夾,令我驚訝的是它不包含“ System.Collections.Immutable.dll”,因此為什么找不到它。
我的一個同事在他們的計算機上運行了它們,並且運行了測試,我們查看了項目B的輸出文件夾,更令人驚訝的是,那里有一個“ System.Collections.Immutable.dll”文件。 但是...不是在Project A的輸出文件夾(1.1.33)中找到的版本是4.xx-我以為這是來自GAC,但由於其他原因,我們無法確認它們是否具有他們的GAC中的那個dll
所以我的想法有些激動
我的理解是MSBuild將GAC中的dll作為最后的手段,應該首先使用提示路徑(是的,我檢查了提示路徑指向的dll是否也存在)
所以..
我正在使用Visual Studio 2019,如果有所作為
由於您的項目(從描述中判斷)正在使用packages.config,因此您還需要將在項目A中使用的NuGet軟件包也明確安裝到項目B中,因為它們不會傳遞。
但是:System.Collections.Immutable.dll首先不應該是ScriptCs包的一部分。 這可能是ScriptC的打包問題。
另外:您可能無法在測試項目中生成綁定重定向。 如果是這樣,請嘗試將此xml添加到測試項目文件中:(請參閱無法加載文件或程序集Microsoft.Extensions.DependencyInjection.Abstractions,Version = 1.1.0.0 )
<PropertyGroup>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.