.Net contribuir para eco - criar e fazer upload de pacote NuGet (tem dentro exclusivo ovo)

prefácio

       NuGet .net é comumente usado gerenciador de pacotes, foi construído em futuras versões do Visual Studio 2012. A maioria dos pacotes .net são hospedados nuget.org, incluindo o núcleo do framework .NET do pacote básico, graças ao projeto do núcleo .net modular, um monte de pacotes non-core pode ser atualizado para um certo grau de independência.

       Criar e fazer upload de pacote NuGet eco também tornar-se contribuir para .net abordagens importantes. Porque VS 2019 apoio arquivo de projeto um grande número de NuGet configuração csproj relacionadas embalado, portanto, a maioria dos pacotes NuGet convencionais de tempo podem ser feitas diretamente com o VS. nuget.org só precisa fazer upload de arquivos para gerar o pacote, muito conveniente.

texto

explicação

       Estou aqui para fazer o upload nuget.org pacote  CoreDX.vJoy.Wrapper  exemplo. Este pacote é um pacote gamepad virtuais conduzido C # SDK, a plataforma .NET núcleo 3.0+ correspondente. Se você deseja usar, você precisa instalar o software vJoy. Download: http://vjoystick.sourceforge.net/site/index.php/download-a-install/download . software vJoy chamado existem vários, notar que alguns são usados para mapeamento de teclado usuários de software de simulação de alça, a alça é puramente para os desenvolvedores do programa de controle virtual, mapeamento de teclado quero ter que escrever seu próprio software.

Operação básica

       1, um novo projeto de biblioteca de classes, com o nome e, em seguida, todo o caminho para o próximo passo para completar o novo projeto.

       2, a biblioteca de estrutura de destino arquivo csproj aberto ajustado para fazer uso netstandard quadro geral, e minimizar versão de compatibilidade garantia de confiança, é agora geralmente principalmente 2.0 versões, anteriores da mais grave falta de uma API padrão. Propriedades projeto certo também pode ser ajustado, mas não tão bom como a liberdade de editar diretamente o arquivo de projeto. No entanto, estes não são o foco, o foco é como apoiar simultaneamente quadro múltiplo, este projecto pode editar diretamente o arquivo. Encontrado <targetFramework> netstandard2.0 </ targetFramework>, o targetFramework em TargetFrameworks, e espaçados quadros diferentes com um ponto e vírgula. Por exemplo, o meu projeto é o seguinte: <TargetFrameworks> netcoreapp3.0; netcoreapp3.1 </ TargetFrameworks>. netcoreapp também possível bibliotecas saída oh. macros de compilação condicional pode ser usado para quadro determinação ao usar código diferente para diferentes funções, por exemplo: #if NETCOREAPP3_1 xxx códigos #endif #if NET461 xxx códigos #endif. Então feliz escrevendo código.

       3, as propriedades do projeto certo, encontrar guia embalados, editar as informações do pacote NuGet, tais como o nome do pacote, versão, autor, licença, descrição, informações sobre direitos autorais, e assim por diante. Há muitos arquivos de projeto só pode ser alterado diretamente, a maioria pode ser inscritas no <PropertyGroup> nó <pacote, e depois saltar de dicas inteligentes nó pacote de informações NuGet é utilizável. Onde se você quiser fazer o upload para nuget.org, o nome do pacote deve existir e deve ser o mesmo nome que um pacote existente; cada versão deve ser modificado e só pode fazer upload de maior; licença deve especificar, por exemplo, I: <PackageLicenseExpression> MIT </ PackageLicenseExpression> especifica o uso da licença MIT.

       4, itens embalados com o botão direito. Note que se você deseja carregar a versão oficial do pacote, você precisa mudar para o modo de lançamento e, em seguida, embalado.

       5, www.nuget.org aberta, conta de login no canto superior direito do navegador, você pode usar a conta Microsoft ou login da conta Github. Encontrado na barra de navegação superior Upload, upload, geração geral pacote para a pasta bin. Após o upload fará algumas informações de verificação e pré-visualização de exibição, após a confirmação do ponto final do Ministério da liberação. Espera para inspeções de segurança local e a criação do índice, geralmente 5-30 minutos, pode ser encontrada no Web site eo VS.

operação prolongada

       Tal como o meu saco, referências dinâmicas x86 e x64 montagem, estas referências são carregados dinamicamente em tempo de execução, que as ferramentas de embalagem NuGet não é conhecido, estas referências dinâmicas não serão embalados, pacotes de instalação, e outras pessoas ocorre um erro, o arquivo está faltando. Se eu quiser ser empacotado com esses arquivos, você precisa editar o arquivo de projeto, como este:

  < ItemGroup > 
    < Content Incluir = "x64 \ *. Dll" Pacote = "true" PackageCopyToOutput = "true" PackagePath = "x64" > 
      < CopyToOutputDirectory > Sempre </ CopyToOutputDirectory > 
    </ Content > 
    < Content Incluir = "x86 \ * .dll" Pacote = "true" PackageCopyToOutput = "true" PackagePath = "x86" > 
      < CopyToOutputDirectory >Sempre </ CopyToOutputDirectory > 
    </Content > 
    < conteúdo Incluir = "CoreDX.vJoy.Wrapper.targets" Pacote = "true" PackageCopyToOutput = "true" PackagePath = "build /" > 
      < CopyToOutputDirectory > Nunca </ CopyToOutputDirectory > 
    </ Content > 
  </ ItemGroup >

       Onde Pacote = "true" Para incluir arquivos que representam embalados em conjunto, PackageCopyToOutput = representação "true" para ser a saída para o local especificado, PackagePath faz com que o arquivo exportado para a pasta pacote especificado, porque o pacote NuGet é realmente um arquivo zip.

       .Targets que é um arquivo especial, pasta deve ser empacotado para construir útil. Se você não arrumar este documento, outras pessoas vão encontrar o pacote de instalação ainda está sendo dada, embora o pacote tem o arquivo, mas não replica para o projeto, arquivo de destinos é responsável pelo projeto a ser contada como lidar com os arquivos adicionais são embalados go, é uma arquivo xml para criar manualmente uma nova alteração de arquivo xml a extensão na linha. Algo parecido com isto:

<? xml version = "1.0" encoding = "utf-8" ?> 
< Projeto ToolsVersion = "4.0" xmlns = "http://schemas.microsoft.com/developer/msbuild/2003" > 
    < ItemGroup > 
        < Nenhum Incluir =" $ (MSBuildThisFileDirectory) \ .. \ x86 \ vJoyInterface.dll" > 
            < link > x86 \ vJoyInterface.dll </ link > 
            < CopyToOutputDirectory > PreserveNewest </ CopyToOutputDirectory > 
        </ Nenhum > 
        <= "$ (MSBuildThisFileDirectory) \ .. \ x86 \ vJoyInterfaceWrap.dll" > 
            < link > x86 \ vJoyInterfaceWrap.dll </ link > 
            < CopyToOutputDirectory > PreserveNewest </ CopyToOutputDirectory > 
        </ Nenhum > 
        < Nenhum Incluir = "$ (MSBuildThisFileDirectory) \ .. \ x64 \ vJoyInterface.dll" > 
            < link > x64 \ vJoyInterface.dll </ link > 
            < CopyToOutputDirectory > PreserveNewest </ CopyToOutputDirectory >
        </ Nenhum> 
        < Nenhum Incluir = "$ (MSBuildThisFileDirectory) \ .. \ x64 \ vJoyInterfaceWrap.dll" > 
            < link > x64 \ vJoyInterfaceWrap.dll </ link > 
            < CopyToOutputDirectory > PreserveNewest </ CopyToOutputDirectory > 
        </ Nenhum > 
    </ ItemGroup > 
< / Projeto >

       Com este documento, outras pessoas depois de instalar o pacote, o projeto irá automaticamente ler este documento e o documento em referência ao projeto para garantir que outros usam normal.

epílogo

       Na verdade, essa coisa acabou de escrever seu próprio jogo, o resultado de capricho para NuGet encontrar um pouco e encontrou nenhum pacote bom som semelhante, ou então eu queria carregar um NuGet-lo. O resultado foi este dll dinâmica referenciado para o poço, e depois que a embalagem não se refere a estes dll vir. Baidu à procura de um longo tempo não encontrar uma solução, não se preocupam em obter uma escada para o Google, ir diretamente para o código-fonte GitHub para encontrar um similar projetos de código aberto é como eles se envolver em, tentar obtê-lo por um longo tempo. Escrever esta mentalidade registro.

       Este artigo pode ser considerado pacote Net Núcleo está definido para x86 gravação AnyCPU e programas x64 sequela.

 

       Reproduzido por favor preencha os seguintes reservas e marcou num local visível, remova o seguinte conteúdo contra roubo de reimpressão não autorizada, reserva-se no direito de apresentar queixa responsabilidades legais!

  Este artigo aborda: https://www.cnblogs.com/coredx/p/12578978.html

  O código-fonte completo: Github

  Há todos os tipos de coisas pequenas, este é apenas um deles, não se importa, então você pode olhar para Star.

Acho que você gosta

Origin www.cnblogs.com/coredx/p/12578978.html
Recomendado
Clasificación