Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problema com o nuget (Standard) #1113

Closed
marcosgerene opened this issue May 7, 2020 · 5 comments
Closed

Problema com o nuget (Standard) #1113

marcosgerene opened this issue May 7, 2020 · 5 comments
Assignees

Comments

@marcosgerene
Copy link
Contributor

Lancei um projeto novo para impressão do SAT e NCe em EscPOS.
https://github.com/marcosgerene/Gerene.DFe.EscPos

O projeto é em .NetStandard e o Demo em .NetFramework.

Uso nele duas dependências além do Zeus, ambas tiveram sucesso, o Zeus não.

A referência no .Net Std.
WhatsApp Image 2020-05-07 at 16 33 10

.Net Full
WhatsApp Image 2020-05-07 at 16 33 10 (1)

O erro:

image

Não consegui solucionar.

@marcosgerene
Copy link
Contributor Author

@danilobreda

@marcosgerene
Copy link
Contributor Author

@danilobreda
Copy link
Contributor

danilobreda commented May 8, 2020

@marcosgerene encontrei alguns problemas como essa issue... que podem ser um dos motivos do problema.
Porem o que percebi após uma analise foi o seguinte.
O projeto seu GereneDFeEscPos você apenas está setando como saída no csproj como .netstandard2.0...
<TargetFramework>netstandard2.0</TargetFramework>
O Zeus está diferente de um projeto como o da ACBR por exemplo (que dei uma analisada)... ele tem 2 saídas de DLLs no nuget totalmente diferentes... (segue imagem)

image

Então o processo que verifiquei que é executado é o seguinte:

  • Caso o runtime for 4.0+ ele vai setar as libs do .net 4+.
  • Caso for .Net core ou .net standard, ele vai setar o .net standard.

O problema que verifiquei é que como voce setou o target para .netstandard2.0. no projeto "GereneDFeEscPos"... quando o projeto .net framework tenta utilizar ele tenta pegar as dlls do .net standard, e ai não acha pois é um projeto .net framework! (isso tudo na imagem acima)

A solução é no seu projeto GereneDFeEscPos você trocar o <TargetFramework>netstandard2.0</TargetFramework>
para
<TargetFrameworks>net462;netstandard2.0</TargetFrameworks>
Assim ele irá selecionar as dlls do .net framework do nuget, quando for .net framework o target. E não do .net standard.

Solucionado o problema!

Vai ficar assim sua lib intermediaria:

image

Pelo primeiro link que te passei podemos ver que a maneira como é "gerado" toda a saída das dlls ao buildar o projeto, o .net core trata totalmente diferente do .net framework. Talvez a origem de todo o problema esteja ai.

Infelizmente não sei como solucionar o problema do nosso Nuget Gerado! Acredito que ele esteja com alguma definição errada, ou falta de configuração... e vou estudar melhor para saber se existe uma maneira de ele selecionar isso automaticamente ou algo assim. Para que não precise ser setado multitarget nos projetos intermediários.

Outra questão é porque não usar o .net core no Windows Forms do projeto Demo... já está funcionando 100% no .net core 3.1+. Tente utilizar que fica 10! (faz um .net framework e outro .net core :D)

@marcosgerene marcosgerene reopened this May 8, 2020
@marcosgerene
Copy link
Contributor Author

@danilobreda

A solução é no seu projeto GereneDFeEscPos você trocar o netstandard2.0
para
net462;netstandard2.0
Assim ele irá selecionar as dlls do .net framework do nuget, quando for .net framework o target. E não do .net standard.

Tentei fazer a mudança, mas não tive sucesso, se puder fazer um PR lá agradeço, se funcionar com o Zeus "raiz" volto a setar ele como "motor da deserealização" do xml da NFCe.

Outra questão é porque não usar o .net core no Windows Forms do projeto Demo... já está funcionando 100% no .net core 3.1+. Tente utilizar que fica 10! (faz um .net framework e outro .net core :D)

O demo é em winforms, basicamente é Ctrl C Crtl V no .Net Core e boa, consigo implementar em 10 minutos, vou colocar sim =)

@danilobreda
Copy link
Contributor

@marcosgerene feito, aguardando aprovação

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants