ReferencePath с новым.NET SDK?

Я пытаюсь указать кастом ReferencePath в моем файле.csproj, который использует новый формат.

Вот как это выглядит:

<PropertyGroup>
  <ReferencePath>C:\...\binaries</ReferencePath>
</PropertyGroup>

Со следующей ссылкой:

<Reference Include="MyDll">
  <Private>false</Private>
  <SpecificVersion>false</SpecificVersion>
</Reference>

C:\...\binaries содержит MyDll.dll

Тем не менее, во время сборки я все еще получаю

предупреждение MSB3245: не удалось разрешить эту ссылку. Не удалось найти сборку "MyDll". Убедитесь, что сборка существует на диске. Если эта ссылка требуется вашим кодом, вы можете получить ошибки компиляции.

Я пытаюсь перейти на ReferencePath от HintPathс, как они стали громоздкими, чтобы поддерживать.

2 ответа

В новом SDK csproj вы можете использовать переменную AssemblySearchPaths вместо переменной ReferencePath, чтобы влиять на проверку сборки

<AssemblySearchPaths>
  $(YOUR_SEMICOLON_SEPARATED_DIR_PATHS);$(AssemblySearchPaths);
</AssemblySearchPaths>

Однако будьте осторожны со старыми проектами.NET Framework, где этот трюк не работает.

ReferencePath можно добавить вручную в новый csproj:

<PropertyGroup>
    <AssemblySearchPaths>
       $(AssemblySearchPaths);
       $(ReferencePath);
    </AssemblySearchPaths>
</PropertyGroup>

Я думаю, что лучше, если вы измените выходной путь этой DLL с помощью вашего пути C:...\binaries в окне properties->build проекта:

Другие вопросы по тегам