我真的很喜欢 nuget 并在 Visual Studio Team Services (visualstudio.com) 下构建解决方案。任何帮助都感激不尽。
我有一个包含 36 个项目的解决方案。许多项目使用相同的 5 或 6 个 nuget 包。我已仔细遵循 Migrating MSBuild-Integrated solutions to use Automatic Package Restore 的说明因此在我的解决方案文件夹下有一个 .nuget 文件夹,其中包含一个单独的 NuGet.Config 文件,不再包含 Nuget.exe 或 Nuget.targets 文件。所有项目的 Nuget.targets 行都已删除。
我正在使用 Visual Studio 2013 Professional (v12 Update 2),并且该解决方案在本地构建,没有错误或警告。即使在清理并删除包文件夹后,它也会下载并构建良好。包文件夹未 checkin Visual Studio Team Services。
检查构建日志表明:
事情开始失败的日志示例(尽管这显然是因为 nuget 尚未介入):
Project "C:\a\src\TFS\RSPlatform\Main\Source\RSPlatform Team Project.sln" (1) is building "C:\a\src\TFS\RSPlatform\Main\Source\Support\A2Refresh\A2Refresh.csproj" (8) on node 1 (default targets).
PrepareForBuild:
Creating directory "obj\Release\".
ResolveAssemblyReferences:
Primary reference "Bytescout.Spreadsheet".
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "Bytescout.Spreadsheet". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. [C:\a\src\TFS\RSPlatform\Main\Source\Support\A2Refresh\A2Refresh.csproj]
For SearchPath "C:\a\src\TFS\RSPlatform\Main\Source\Support\A2Refresh\FakesAssemblies".
Considered "C:\a\src\TFS\RSPlatform\Main\Source\Support\A2Refresh\FakesAssemblies\Bytescout.Spreadsheet.winmd", but it didn't exist.
Considered "C:\a\src\TFS\RSPlatform\Main\Source\Support\A2Refresh\FakesAssemblies\Bytescout.Spreadsheet.dll", but it didn't exist.
Considered "C:\a\src\TFS\RSPlatform\Main\Source\Support\A2Refresh\FakesAssemblies\Bytescout.Spreadsheet.exe", but it didn't exist.
For SearchPath "{HintPathFromItem}".
Considered "..\..\packages\Bytescout.Spreadsheet.2.4.0.1346\lib\net45\Bytescout.Spreadsheet.dll", but it didn't exist.
For SearchPath "{TargetFrameworkDirectory}".
Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\Bytescout.Spreadsheet.winmd", but it didn't exist.
Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\Bytescout.Spreadsheet.dll", but it didn't exist.
Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\Bytescout.Spreadsheet.exe", but it didn't exist.
Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\Facades\Bytescout.Spreadsheet.winmd", but it didn't exist.
Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\Facades\Bytescout.Spreadsheet.dll", but it didn't exist.
Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\Facades\Bytescout.Spreadsheet.exe", but it didn't exist.
For SearchPath "{Registry:Software\Microsoft\.NETFramework,v4.5.1,AssemblyFoldersEx}".
Considered AssemblyFoldersEx locations.
For SearchPath "{AssemblyFolders}".
谁能建议我应该如何让 Visual Studio Team Services 使用 nuget?
如果自动包还原建议删除
~/.nuget/NuGet.exe
Visual Studio Team Services 怎么可能使用 NuGet ?提前致谢,
克里斯
最佳答案
如果您在 Visual Studio Team Services 上构建,那么我发现 Nuget.exe 和 Nuget.targets 都需要存在,这似乎与您通过谷歌搜索这个主题可以找到的所有建议相反。
添加它们使我的 Visual Studio Team Services 构建工作。
关于visual-studio-2013 - nuget 未在 Visual Studio Team Services (visualstudio.com) 下下载包(自动包还原),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24174580/