0

MSBuild C# API のラッパーを作成しようとしています。ビルドはすべて正常に機能していますが、何らかの奇妙な理由で、パラメーターを渡しても Nuget パッケージの復元を実行するのに苦労しています。

NETWORK SERVICEとして実行されるサービスでこれを実行しています

The command ""..\.nuget\nuget.exe" install "C:\BuildTemp\application1\packages.config" -source "" -RequireConsent -o "..\packages"" exited with code 1.

それらを正しく渡していますか?

var pc = new ProjectCollection();
var buildProperties = new Dictionary<string, string>
{
    {"Configuration", "Release"},
    {"Platform", "Any CPU"},
    {"OutputPath", _outputPath},
    {"EnableNuGetPackageRestore", "true"}
};

var buildParameters = new BuildParameters(pc);
var buildRequest = new BuildRequestData("C:\myapplication.csproj",
                                        buildProperties,
                                        null,
                                        new[] { "Clean", "Rebuild" },
                                        null);

更新: これは、一部の環境では機能するようですが、他の環境では機能しないようです。これはなぜでしょうか?

4

1 に答える 1

3

そこで、ローカル マシンで次のコマンドをテストしました。

.\.nuget\NuGet.exe install Akavache\packages.config -source "" -RequireConsent -o packages

エラーが発生します:

無効な URI: URI の形式を判別できませんでした。

私はこのビットに関連していると信じています:

-source ""

その値を削除して、エラーなしで再度実行できるためです。

パッケージのソースはどこに定義されているのでしょうか?

NuGet.targets ファイル内には、次のようなセクションがあります。

<ItemGroup Condition=" '$(PackageSources)' == '' ">
    <!-- Package sources used to restore packages. By default, registered sources under %APPDATA%\NuGet\NuGet.Config will be used -->
    <!-- The official NuGet package source (https://nuget.org/api/v2/) will be excluded if package sources are specified and it does not appear in the list -->
    <!--
        <PackageSource Include="https://nuget.org/api/v2/" />
        <PackageSource Include="https://my-nuget-source/nuget/" />
    -->
</ItemGroup>

%APPDATA%\NuGet\NuGet.Configしたがって、「一部の環境では機能し、他の環境では機能しない」と言うときは、サービスアカウント用の構成ファイルがないことを提案します。

Nuget.targetsソース管理のファイルのこのセクションを次のように変更してみてください:

<ItemGroup Condition=" '$(PackageSources)' == '' ">
    <PackageSource Include="https://nuget.org/api/v2/" />
</ItemGroup>

そして、それが他の環境での問題を解決するかどうかを確認しますか?

于 2013-03-27T02:18:41.697 に答える