我作为哈德逊奴隶在虚拟机中工作。 在虚拟机中,我添加了我想要使用的MSBuild的路径:
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\;
我还添加了NUnit的路径:
C:\Program Files\NUnit 2.5.7\bin\net-2.0;
因此,我可以在我的VM中运行NUnit和MSBuild命令行。
但是当我的Hudson Job构建我的解决方案时,我收到了这个错误:
C:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.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>Dll\nunit.framework.dll</HintPath>
</Reference>
答案 0 :(得分:13)
问题不在于nunit-console.exe(或任何名称)。
问题是你找不到nunit.framework.dll ...作为项目文件中的引用(C#的.csproj)。
您的单元测试项目,您需要打开它并查找nunit.framwork.dll的引用的连接方式/位置。
如果令人困惑,请发布.csproj
代码。
编辑:
<HintPath>Dll\nunit.framework.dll</HintPath>
问题是您需要“下载”或复制或svn-export或svn-checkout或nuget-get该文件。 并将其放在 relative 目录中.csproj。
因为你已经指定了一个HintPath,所以它找不到下面目录中的那个:
C:\Program Files (x86)\NUnit 2.X.Y\bin\nunit.framework.dll
基本上,HintPath
说“我希望在这里找到此文件”,并且您的MSBUILD错误显示“我没有找到它HintPath
所说的位置。”
答案 1 :(得分:1)
在哪个用户帐户下,jenkins-slave.exe(或hudson slave)在您的VM节点上运行?
.NET dll的路径在Windows注册表(HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework\VersionMinimum\AssemblyFoldersEx\MyAssemblies]@="AssemblyLocation"
)中注册。
默认情况下,jenkins在NT AUTHORITY\SYSTEM
帐户下运行jenkins-slave服务(可能没有在您的系统上注册任何AssemblyLocations)。
我将我的用户帐户登录(在其下.csproj构建为魅力)详细信息填入jenkins - &gt;节点 - &gt; VM - &gt;配置并另外设置Windows运行“jenkins slave”服务的同一用户帐户(在VM的Windows服务 - &gt; jekins slave - &gt;属性 - &gt;登录 - &gt;此帐户:...)
所以它没有在.csproj中指定提示路径,因为它是特定于机器的(我的构建在多台机器上运行)。
答案 2 :(得分:0)
就我而言,问题在于构建顺序。 必需的库已配置为在失败的库之后构建。