Какой компонент Visual Studio содержит общедоступные сборки?

#c# #visual-studio #winforms #docker

#c# #visual-studio #winforms #docker

Вопрос:

У меня есть проект Windows Forms в Visual Studio 17, который использует Microsoft.VisualStudio.DebuggerVisualizers.dll , который находится в C:Program Files (x86)Microsoft Visual Studio2017EnterpriseCommon7IDEPublicAssemblies папке.

В .csproj файле (формат csproj 2015) ссылка указана следующим образом:

 <Reference Include="Microsoft.VisualStudio.DebuggerVisualizers, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
  

(Если я переключусь на .csproj версию 2017, и даже ссылка останется прежней, проект не будет компилироваться даже локально.)

Я пытаюсь скомпилировать проект внутри Docker, но он не находит DLL. Какой компонент Visual Studio я должен установить, чтобы также получить эту DLL?

Комментарии:

1. какой тип проекта вы создаете?

2. Я пытаюсь создать проект Windows Form.

3. Это компонент Visual Studio, который обычно используется только расширениями VS. Зачем вам это нужно в приложении WinForms и в Docker?

4. Это устаревший проект в моей компании. Я предполагаю, что он показывает сложные графики, построенные в нашем коде. Это внутренний инструмент.

5. вы установили Visual Studio sdk в свой контейнер?

Ответ №1:

В свойствах ссылки вы можете установить для Copy Local параметра значение true, чтобы указанная сборка была скопирована в целевой каталог «bin». Загрузчик сборки выполняет поиск в библиотеках DLL в той же папке, что и исполняемая сборка, и только позже в GAC (процесс более сложный, но этого должно быть достаточно для ваших целей).