哈德逊:警告MSB3245:找不到程序集"nunit.framework"



我在虚拟机中作为Hudson Slave工作。在虚拟机中,我添加要使用的MSBuild的路径:

%SystemRoot%Microsoft.NETFrameworkv4.0.30319;

我还添加了NUnit的路径:

C:Program FilesNUnit 2.5.7binnet-2.0;

因此,我可以在VM中运行NUnit和MSBuild命令行。

但当我的Hudson Job构建我的解决方案时,我遇到了这个错误:

C:WINDOWSMicrosoft.NETFrameworkv3.5Microsoft.Common.targets : warning MSB3245: Could not resolve this reference. Could not locate the assembly "nunit.framework".

我应该在VM或Hudson中修复什么?非常感谢!

编辑

以下是相关文件*.csproj如何引用dll:

<Reference Include="nunit.framework, Version=2.5.7.10213, Culture=neutral, PublicKeyToken=KKKKKKKKKK processorArchitecture=KKK">
    <SpecificVersion>False</SpecificVersion>
    <HintPath>Dllnunit.framework.dll</HintPath>
</Reference>

问题不在于nunit-console.exe(或任何名称)。

问题是在项目文件中找不到nunit.framework.dll…作为引用(对于C#为.csproj)。

你的单元测试项目,你需要打开它,找到对nunit.framwork.dll的引用是如何/在哪里连接的。

发布.csproj代码,如果这令人困惑。

编辑:

<HintPath>Dllnunit.framework.dll</HintPath>

问题是,您需要"下载"或复制、svn导出、svn签出或nuget该文件。并将其放在.csproj.的相对目录中

因为你已经指定了一个提示路径,它不会在下面的目录中找到:

C:Program Files (x86)NUnit 2.X.Ybinnunit.framework.dll

基本上,HintPath说"我希望在这里找到这个文件",而您的MSBUILD错误说"我没有在HintPath说的地方找到它。"

jenkins-slave.exe(或hudson slave)在您的VM节点上运行在哪个用户帐户下?

.NET dll的路径在windows注册表(HKEY_CURRENT_USERSOFTWAREMicrosoft.NETFrameworkVersionMinimumAssemblyFoldersExMyAssemblies]@="AssemblyLocation")中注册。

默认情况下,jenkins在NT AUTHORITYSYSTEM帐户下运行jenkins slave服务(该帐户可能没有在您的系统上注册任何AssemblyLocations)。

我在jenkins->nodes->VM->config中填写了我的用户帐户登录(.csproj在该帐户下构建得像一个魅力)详细信息,并另外设置了Windows运行"jenkinsslave"服务的同一用户帐户(在VM的Windows服务->jekins slave->属性->登录->此帐户:…)

因此,它可以在.csproj中不指定提示路径的情况下工作,因为它是特定于机器的(我的构建在多台机器上运行)。

在我的案例中,问题出现在构建序列中。所需的库已配置为在失败的库之后生成。

最新更新