我目前正在尝试创建一个构建计划在竹ASP。. NET MVC项目。我已经将构建计划设置为调用nuget.exe来获取构建所需的包。但是,Nuget还原操作会将Nuget文件放入不同于指定的目录中,从而导致构建问题。
下面是我的包中的两个Nuget包的摘录。导致问题的配置文件
<package id="Owin" version="1.0.0" targetFramework="net46" userInstalled="true" />
<package id="Unity" version="3.5.1404" targetFramework="net46" userInstalled="true" />
恢复操作正常工作,但是包被下载到不正确的目录名。例如,Owin包下载到packagesOwin.1.0
时,应该下载到packagesOwin.1.0.0
。unity包下载到packagesUnity.3.5.1404.0
应该注意的是,这两行在包装中的位置是一样的。配置文件(即Unity直接跟随Owin包),所以我不认为丢失.0
的目录直接在获得0.1
的包定义之前是巧合。
Bamboo中的命令只是使用以下命令参数调用Nuget.exe文件:restore "${bamboo.build.working.directory}checkoutpathtoSolution.sln" -ConfigFile "${bamboo.tools.directory}nugetnuget.config"
编辑:通过下载nuget命令行实用程序并从命令行运行以下命令,可以在完全不同的系统上重现此行为:nuget restore "../path/to/solution.sln" -ConfigFile "nuget.config"
所以,由于某种原因,Nuget正在下载Owin.1.0.nupkg
和Unity.3.5.1404.0.nupkg
文件,这就是不正确的目录名的来源。
nuget restore命令输出:
Installing 'Owin 1.0'.
Installing 'Unity 3.5.1404.0'.
Successfully installed 'Owin 1.0'.
Successfully installed 'Unity 3.5.1404.0'.
因此,虽然这远远不是理想的解决方案,但我想我将不得不创建一个构建步骤来重命名错误的目录名称。