我在一台计算机上检查了一个项目,检查了另一台计算机,发现NuGet安装的二进制文件丢失了.我也可以检查它们来源控制,但看起来有一个更好的解决方案:
http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages
我按照这些说明,现在有.nuget一个应该是的文件夹,在我的.csproj文件中有以下条目:
<RestorePackages>true</RestorePackages>
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
Run Code Online (Sandbox Code Playgroud)
然而,当我重建我的解决方案时,丢失的包不会被恢复.
我错过了什么?我该如何诊断这个问题?
我刚刚在一台新机器上创建了一个工作区,从TFS获得了最新的项目,启用了NuGet Restore,我获得了以下(略读)输出:
1>------ Rebuild All started: Project: Caching, Configuration: Debug Any CPU ------
1> Restoring NuGet packages...
1> To prevent NuGet from downloading packages during build, open the Visual Studio Options dialog, click on the Package Manager node and uncheck 'Allow NuGet to download missing packages'.
1> All packages listed in packages.config are already installed.
1> Caching Framework -> C:\MyProjLocation\Caching\bin\Debug\Caching.dll
2>------ Rebuild All started: Project: Library, Configuration: Debug Any CPU ------
2>C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(1635,5): warning MSB3245: Could not resolve this …Run Code Online (Sandbox Code Playgroud) msbuild visual-studio nuget nuget-package visual-studio-2013
我有一个导入的MSBuild项目(appconfig.transformation.targets),它定义了一些任务并将它们放在BuildDependsOn属性中.我已将此文件放在解决方案的顶级文件夹中(Projects\LibrariesSolution\appconfig.transformation.targets):
<PropertyGroup>
<BuildDependsOn>
TransformWebConfig;
OverrideAppConfigWithTargetPath;
$(BuildDependsOn);
CopyTransformedConfig
</BuildDependsOn>
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets" />
Run Code Online (Sandbox Code Playgroud)
我在子文件夹中的解决方案内的每个csproj文件中导入此项目.所以Projects\LibrariesSolution\Project1\Project1.csproj有这样的东西:
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>
<Import Project="..\appconfig.transformation.targets" />
... the rest of the csproj stuff ...
Run Code Online (Sandbox Code Playgroud)
我这样启动构建:
cd LibrariesSolution
c:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe /t:Clean /p:Configuration=Release Project1\Project1.csproj
c:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe /t:Build /p:Configuration=Release Project1\Project1.csproj
Run Code Online (Sandbox Code Playgroud)
但是,BuildDependsOn中列出的目标似乎没有被调用.当然输出在这里显示得过于冗长,但"TransformWebConfig"并没有出现在输出中的任何地方.没有显示错误.可能有什么不对?我该怎么做才能进一步排除故障?