这里的要点是:我不是Nuget软件包的作者,我只是在使用它。就我而言,这是硒,但可能是任何东西。
我有我的项目BaseTest
,它具有基于硒的一些基本功能。我也有 Test1
, Test2
,..., TestN
项目参考此 BaseTest
。
现在我运行测试,并且它们失败了,因为当MSBuild构建解决方案时,它不会复制本机依赖性chromedriver.exe
,而chromedriver is missing
则失败。
我现在有两个选择要考虑:我可以将Selenium
软件包添加到所有项目中,从理论上讲可能会消耗此BaseTest
,或者我可以手动对所有这些项目进行XCOPY
。两种选择似乎都很丑陋。
有什么更好的方法来执行此类操作?
我没想到会添加文件,因为内容适用于传递依赖关系(例如,根据此链接)
但是,确实如此。我在csproj
中的更改
<ItemGroup>
<Content Include="..packagesSelenium.Chrome.WebDriver.2.33driverchromedriver.exe">
<Link>chromedriver.exe</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
它确实可以按预期工作。感谢@SOTN
您可以将chromedriver.dll纳入您的项目(例如代码文件),并将其"复制到输出目录"选项设置为"始终"/"复制"/"如果较新"。p>如果您不想检查dll,也可以将其添加为现有链接(添加现有项目 -> add as link),然后将"复制到输出目录"选项应用于" coppy始终"/"复制"如果较新"。