папка пакетов nuget создается на уровне решения, а путь подсказки на уровне проекта не может ее найти - PullRequest
0 голосов
/ 28 января 2020

MVC Проект не может найти пакет nuget и выдает ошибку. Отсутствует файл packages \ Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1 \ build \ net46 \ Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props. Папка пакетов создается на уровне решения, а путь подсказки используется в csproj, как показано ниже. Есть предложения? Перемещение папки пакетов с уровня решения на уровень проекта работает, но я не хочу делать это каждый раз вручную, так как этот проект mvc создается динамически, и на F5 я хотел бы, чтобы сборка была успешной.

 <ItemGroup>
    <Reference Include="Microsoft.CodeDom.Providers.DotNetCompilerPlatform">
      <HintPath>packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll</HintPath>
    </Reference>
  </ItemGroup>

1 Ответ

0 голосов
/ 29 января 2020

Это проблема, связанная с путями. Добавьте $(SolutionDir) перед packages\xxx\xxx, чтобы убедиться, что msbuild будет искать сборку из папки пакетов на уровне решения.

Должно быть:

  <ItemGroup>
    <Reference Include="Microsoft.CodeDom.Providers.DotNetCompilerPlatform">
      <HintPath>$(SolutionDir)packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll</HintPath>
    </Reference>
  </ItemGroup>
...