Pergunta

Eu tenho um projeto web rodando em VS 2008. Nós temos alguns arquivos de recursos globais (* .resx) nos App_GlobalResources pasta para a internacionalização. Tudo isso funciona como um encanto no meu instalação do IIS local fora do VS.

Mas quando eu publicar meu-projeto web para o sistema de arquivos local e / ou outro servidor, todos os recursos não podem mais ser encontrados. Então eu acho que a pré-compilação é de alguma forma corrompendo coisas. Quando eu chamar o web pré-compilada, eu recebo um erro que o objeto de recurso com xyz chave não pode ser encontrado, embora poderia ser encontrado antes.

Eu verifiquei com .NET reflector se o material de recursos tornou nos * .dlls. Todos esses identificadores estão lá (bin / Web.dll, bin / /Web.resources.dll). Os identificadores são carregados como este:

<asp:MenuItem NavigateUrl="~/OrderNew.aspx" Text="<%$ Resources:MyProject, MenuNewOrder %>" Value="NewOrder">

Os arquivos de recursos são chamados MyProject.resx e MyProject. .resx onde corresponde a cultura específica (ou seja MyProject.de-DE.resx).

Alguma idéia de como resolver isso?

Eu realmente aprecio qualquer ajuda.

Graças

Editar:

Se eu copiar os App_GlobalResources pasta manualmente para a saída, os recursos podem ser carregados normalmente. Então, eu realmente saber o que este pré-compilação é tudo.

Ainda estou interessado em resolver a questão "o caminho certo".

Foi útil?

Solução

Eu tive o mesmo problema e teve que fazer duas mudanças para as propriedades do arquivo resx.

  1. Defina o "Build Action" para conteúdo
  2. Defina o "Copy to Output Directory" para copiar sempre

Outras dicas

(Eu não posso comentar sobre a resposta anterior ... nenhuma reputação ainda ...?)

Isto não resolver o meu problema, eu tenho medo.

Ao tentar a solução "Conteúdo / Copy Always" eu recebo uma exceção dizendo que a ligação em tempo de compilação não funcionou.

Por que a necessidade asp.net o arquivo resx quando os recursos são compilados no!?

Eu tive esse erro ao copiar um arquivo de recurso de outro projeto.

Eu resolvi isso excluindo o recurso global, adicionando um novo recurso e copiar os elementos data da antiga para a nova XML.

Isso resulta nas seguintes configurações para o recurso:

  <ItemGroup>
    <Content Include="App_GlobalResources\Global.resx">
      <Generator>GlobalResourceProxyGenerator</Generator>
      <LastGenOutput>Global.Designer.cs</LastGenOutput>
    </Content>
  </ItemGroup>

Eu tive o mesmo problema. Sempre que eu publiquei meu aplicativo para o Small Business Server (SBS2008) ele ficou preso na linha nome do controle, mas na verdade na meta: parte resourcekey dele. Não da solução acima indicado me helpd.

Eu passei seis horas descobrir isso, finalmente percebi que este happend quando eu fiz alguma cleenup pasta no servidor. Nos begning todos os meus aplicativos foi localizado em E:. Em suas pastas, mas, em seguida, eu criei pastas com nomes que indicam a aplicativos applicationPools e eu mover aplicativos coresponding há

Eu não sei como IIS7 no meu SBS procurando arquivos de recursos, mas definitivamente este foi o problema. Quando eu voltar com os meus aplicativos para E:. Novamente tudo começou a trabalhar como um encanto

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top