3
respostas

Mapear a pasta Mapeamentos

Como mapear a pasta Mapeamentos, para que os métodos da classe Configure, quando eu executo o código exibe o seguinte erro: "" Exceção interna 1: FileNotFoundException: Não foi possível localizar o arquivo 'c:\users\wyllian\source\repos\NhibernatePersistenciaDeDados\NhibernatePersistenciaDeDados\bin\Debug\hibernate.cfg.xml'. ""

Conseguir executar e criar a tabela, mas só após copiar e colar os arquivos xml, na pasta Debug manualmente.

Teve alguma configuração que tem que ser feita para esse processo ser automático ?

3 respostas

Olá Wyllian,

voce chegou a trocar a propriedade Copy to Output Directory do xml para o Copy Always? Esse passo é comentado rapidamente neste vídeo por volta dos 9 minutos.

Olá, Wyllian

Por favor, veja essas instruções de instalação do curso:

https://cursos.alura.com.br/course/nhibernate/task/2337

Para que o NHibernate encontre o mapeamento, o xml deve ser colocado dentro do código compilado do programa (Assembly do programa), porém o Visual Studio, por padrão, só coloca o código C# no Assembly gerado. Para mudar o comportamento padrão da compilação (build) do Visual Studio, precisamos configurar o Build Action do arquivo.

Para fazer com que o Visual Studio coloque o xml dentro do assembly gerado, vamos clicar com o botão direito no nome do arquivo e selecionar a opção Properties. Dentro da janela properties, vamos mudar o valor da propriedade Build Action para Embedded Resource. Dessa forma, sempre que o projeto for compilado, o Visual Studio copiará o xml para dentro do Assembly.

Veja se consegue dessa forma. Boa sorte!

Obrigado pelas as ajudas! Mas desta ultima forma eu tinha feito, mas conseguir resolver da seguinte forma.

Cliquei na raiz do projeto "loja" --> Propriedades --> aba Build --> no campo "saída" estava setado a pasta como bin/debug, assim acrescentei somente a pasta "Mapeamentos" que ficou bin/debug/Mapeamentos, que ele para de gerar a exception por não encontrar o arquivo e gera a tabela.