2016-12-29 3 views
3

в Visual Studio кодексе Я просто хочу, чтобы добавить ссылку на заказ с # сборки какVSCode C# добавить ссылку на пользовательскую сборку

"../libs/mylib.dll"

как я могу добавить эту зависимость?

Я пытался добавить путь к зависимости, но не смог собрать, потому что его просто неправильно :)

"dependencies": { 
    "myassembly" : "../libs/Common.dll" 
    }, 

или

"dependencies": { 
    "log4net" : { "assembly":"../libs/log4net.dll" } 
    }, 
+1

Вам нужно предоставить нам больше информации, которая должна была быть очевидна для вас. С каким проектом вы работаете? Как вы пытаетесь использовать пользовательскую сборку из своего кода? Почему вы не можете просто ссылаться на него обычным способом, добавив ссылку на свой проект? Какие исследования вы сделали? –

+0

Я думал, что это простой вопрос. У меня есть проект HelloWorld с файлом program.cs. В этом cs-файле я хочу использовать класс из другой сборки. И вопрос в том, как я могу сказать vscode для загрузки моей пользовательской сборки. Когда вы пишете «почему вы не можете просто ссылаться на него ...», это то, что я пытаюсь сделать, но не знаю, как –

+0

почему так зол? конечно, я искал ее, но не смог найти ни одного ответа на этот вопрос. Я трачу около 1 часа, просто задавая этот вопрос ... Я нашел несколько потоков stackoverflow, но не для моего вопроса. –

ответ

4

я, наконец, нашел способ ссылаться на любой .net сборку в коде визуальной студии.

Прежде всего следует отметить: Мне нужен только vscode для intellisense. Я не буду компилировать сборку в vscode /.netcore. Когда я закончил с кодированием, я буду использовать средства командной строки для создания моей сборки.

И это мое решение:

  1. Создание регулярного .net библиотеки классов с Visual Studio (не код) Это создаст myproject.csproj-файл (которым может быть прочитана vscode). Или используйте мой файл test.csproj в нижней части сообщения.

  2. создать папку для ссылочных сборок. Я только что создал libs -каталог в верхнем каталоге.

  3. близко против и откройте папку с vscode.

  4. изменения * .csproj-файл, а затем:

Примечание: мы создали проект в отладочном режиме, так что мы можем удалить релиз-свойства-группы:

4.2. удалить релиз-PropertyGroup (вы не должны, но это не нужно)

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> 
    <DebugType>pdbonly</DebugType> 
    <Optimize>true</Optimize> 
    <OutputPath>bin\Release\</OutputPath> 
    <DefineConstants>TRACE</DefineConstants> 
    <ErrorReport>prompt</ErrorReport> 
    <WarningLevel>4</WarningLevel> 
    </PropertyGroup> 

4,3. Изменение бен-выход-путь к ЛИЭС-каталог

из

<OutputPath>bin\Debug\</OutputPath> 

в

<OutputPath>libs</OutputPath> 

4.4. поместите свои ссылки.Чистая сборке (внешняя или заказ) в ЛИЭСЕ-каталоге и ссылке им нравится:

... 
</PropertyGroup> 
    <ItemGroup> 
    <Reference Include="log4net"> 
     <SpecificVersion>False</SpecificVersion> 
     <HintPath>log4net.dll</HintPath> 
    </Reference> 
    ... 
    </ItemGroup> 
... 

это полный * .csproj файл со ссылкой на log4net.dll.

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> 
    <PropertyGroup> 
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> 
    <ProjectGuid>{75278D05-4850-4282-8AB4-3643A9E799FF}</ProjectGuid> 
    <OutputType>Library</OutputType> 
    <AppDesignerFolder>Properties</AppDesignerFolder> 
    <RootNamespace>Test</RootNamespace> 
    <AssemblyName>Test</AssemblyName> 
    <TargetFrameworkVersion>v4.6</TargetFrameworkVersion> 
    <FileAlignment>512</FileAlignment> 
    </PropertyGroup> 
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> 
    <DebugSymbols>true</DebugSymbols> 
    <DebugType>full</DebugType> 
    <Optimize>false</Optimize> 
    <OutputPath>libs</OutputPath> 
    <DefineConstants>DEBUG;TRACE</DefineConstants> 
    <ErrorReport>prompt</ErrorReport> 
    <WarningLevel>4</WarningLevel> 
    </PropertyGroup> 
    <ItemGroup> 
    <Reference Include="log4net"> 
     <SpecificVersion>False</SpecificVersion> 
     <HintPath>log4net.dll</HintPath> 
    </Reference> 
    <Reference Include="System" /> 
    <Reference Include="System.Core" /> 
    <Reference Include="System.Runtime.Serialization" /> 
    <Reference Include="System.Xml.Linq" /> 
    <Reference Include="System.Data.DataSetExtensions" /> 
    <Reference Include="Microsoft.CSharp" /> 
    <Reference Include="System.Data" /> 
    <Reference Include="System.Xml" /> 
    </ItemGroup> 
    <ItemGroup> 
    <Compile Include="myassembly.cs" /> 
    </ItemGroup> 
    <ItemGroup> 
    </ItemGroup> 
    <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> 
    <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
     Other similar extension points exist, see Microsoft.Common.targets. 
    <Target Name="BeforeBuild"> 
    </Target> 
    <Target Name="AfterBuild"> 
    </Target> 
    --> 
</Project> 
+1

Поскольку Microsoft обновляет MSBuild (предстоящий выпуск в VS2017), вы скоро увидите более простой формат csproj, где добавление ссылок (даже пакетов NuGet) станет намного проще. Это должно помочь пользователям VSCode. В настоящее время вы должны жить с ограничениями. –

3

проще, просто добавьте следующее:

1) изменить файл myproject.csproj

<ItemGroup> 
    <Reference Include="DllComunVb2008"> 
     <HintPath>..\Dlls\DllComunVb2008.dll</HintPath> 
    </Reference> 
    </ItemGroup> 

2) Добавить using библиотеки, которую вы собираетесь использовать. Пример: using Dllcomun;

+0

Спасибо за ваш ответ, однако в правилах stackoverflow все сообщения должны быть на английском языке. – user5226582

Смежные вопросы