Closed AlexandreBellas closed 2 years ago
Não tem muito o que fazer, tem que colocar a pasta de schemas do servidor de acordo com o path informado. Se você informou o path "/home/forfs/acx/interface-nfse/Schemas" dentro desta pasta tem quer ter a Pasta do provedor e dentro da pasta os schemas e essa pasta tem que ser acessível para o programa.
Perfeito. Fiz exatamente o que você disse e ainda assim houve este erro de schema não encontrado.
Inclusive, encontrei esta linha ao tentar entender o que o projeto executa por trás, além desta linha para entender como o projeto tenta ler o arquivo. Como estou usando o ProviderAmericana.cs
, tenho Name = "Americana"
e schema = "nfse.xsd"
. Dessa maneira, tentei replicar o comportamento das duas linhas assim:
nfse.Configuracoes.Arquivos.PathSchemas = "/home/forfs/acx/interface-nfse/Schemas";
string caminho = Path.Combine(nfse.Configuracoes.Arquivos.PathSchemas, "Americana", "nfse.xsd");
Console.WriteLine(caminho);
Console.WriteLine(File.Exists(caminho));
Como output de fato recebi true
. No entanto, executando o projeto, aparentemente eu receberia um false
.
Executei novamente dando permissão 777 (estou no linux) e recebi o mesmo erro.
Você por gentileza poderia replicar por aí para entender se é um erro meu mesmo?
Esse erro ocorre no demo ? É possível reproduzir o mesmo no demo ?
Não consegui testar o demo porque imagino que ele esteja configurado para ambiente Windows. :/
Acabei de testar com o provedor Ginfes, e para esse provedor funcionou tudo certinho. Somente para Americana que não funcionou mesmo. Também fiz o teste no Windows, e deu o mesmo erro.
Reparando no XML de envio para Americana
<ConsultarNfseEnvio xmlns=\"http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd\">
<Prestador>
<Cnpj>31048335000103</Cnpj>
<InscricaoMunicipal>102120</InscricaoMunicipal>
</Prestador>
<PeriodoEmissao>
<DataInicial>2022-09-17</DataInicial>
<DataFinal>2022-10-17</DataFinal>
</PeriodoEmissao>
</ConsultarNfseEnvio>
ele usa como namespace a URL http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd, a qual acessando recebo o erro 404. Talvez seja este o problema?
Eu também já sofri com esse problema de schema e no fim era pq faltava colocar copy local=true nas propriedades da dll
@Transis-Felipe você sabe como colocar copy local=true
no dotnet core? estou usando o vscode ao invés do visual studio
fiz o seguinte:
git clone
na mesma pasta em que está o meu projeto.csproj
:
<ItemGroup>
<ProjectReference Include="..\OpenAC.Net.NFSe\src\OpenAC.Net.NFSe\OpenAC.Net.NFSe.csproj" />
</ItemGroup>
dotnet publish
dotnet build
dotnet run
compilou tudo certinho, e ao executar, o erro dos schemas não apareceu :pray: porém outro surgiu:
The type initializer for 'OpenAC.Net.NFSe.Providers.NFSeUtil' threw an exception.
Saberiam dizer qual foi o problema aqui?
Pessoal, finalmente temos um desfecho para esta issue :smile:
Na postagem original, eu estava utilizando o pacote pelo Nuget, o qual aparentemente está desatualizado com a versão estável presente no GitHub (a disponível na branch main
). Ao invés de utilizar o pacote, fiz o git clone
em uma pasta aqui localmente e referenciei o arquivo .csproj
do repositório dentro de meu projeto, assim como descrevi acima:
<ItemGroup>
<ProjectReference Include="..\OpenAC.Net.NFSe\src\OpenAC.Net.NFSe\OpenAC.Net.NFSe.csproj" />
</ItemGroup>
Porém, como houveram alguns erros no código da biblioteca (para consulta de NFSes ao município de Americana/SP), investiguei e solucionei eles com o PR #155, visto que a implementação da biblioteca se referia ao padrão anterior da cidade.
Uma sugestão poderia ser um tratamento melhor dos erros que ocorrem ao não conseguir completar uma requisição SOAP ao webservice da cidade. Posso criar um PR com uma sugestão de melhoria.
Fico no aguardo da revisão do PR #155 :pray: Agradeço a atenção dos que me auxiliaram até aqui
Boa tarde, pessoal!
Estou com um problema ao consultar notas de serviço de Americana com a biblioteca. Fiz o código abaixo para testar.
Deixei os arquivos de schema dentro da pasta
Schemas
na raiz do projeto, como mostra o print abaixo.Após a execução, recebo o seguinte output:
Mesmo tirando a definição da variável
nfse.Configuracoes.Arquivos.PathSchemas
(a qual vai para o seu valor padrão/home/forfs/acx/interface-nfse/bin/Debug/net6.0/Schemas
) e movendo a pasta de lugar, ainda assim recebo o mesmo erro.Como posso prosseguir aqui? Obrigado