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.