Pergunta

Acabei de instalar o Microsoft Robotics Studio 2008 R2 e devo admitir que estou chocado ao descobrir como os caminhos são tratados.

Primeiro o estúdio quer se instalar no meu perfil pessoal (isso é no Vista):

C:\Users\MyUserName\Microsoft Robotics Dev Studio 2008 R2

Presumo que isso ocorra porque durante o desenvolvimento tenho que gravar arquivos na pasta do Robotics Studio, fazendo C:\Program Files não vá.

Então, quando eu crio um novo projeto de robótica, muitos caminhos absolutos apontando para o estúdio de robótica são adicionados ao projeto.Se eu verificar meu projeto no controle de origem e outro desenvolvedor fizer check-out em sua máquina, os caminhos absolutos não serão resolvidos e o projeto não será compilado.

Além disso, como todos os serviços são coletados em uma única pasta na pasta do Robotics Studio, o desenvolvimento de vários serviços independentes em um único computador parece ser no mínimo confuso.

Você tem alguma boa estratégia para lidar com essa bagunça?

Foi útil?

Solução

Agora descobri uma maneira de transformar um projeto do Visual Studio do Microsoft Robotics DSS Service em algo que você pode compilar e executar em sua própria árvore de origem, independentemente do caminho de instalação do Robotics Studio.Aqui está uma descrição do que você precisa fazer para modificar o projeto:

  1. Adicione o caminho do bin do Robotics Studio para você CAMINHO variável de ambiente para poder executar dssproxy.exe sem fornecer um caminho completo.Instalei o Robotics Studio na pasta de arquivos de programas para evitar a gravação acidental de arquivos nas pastas do Robotics Studio.

  2. Abra o Propriedades página do projeto e selecione o Construir aba.No Saída seção alterar o Caminho de saída para Debug\bin.Para projetos .NET é comum compilar em pastas bin\Debug e bin\Release mas o serviço de alojamento robótico espera morar em uma pasta chamada bin e armazenará os dados na pasta acima do bin pasta.

  3. Vou ao Assinatura guia e selecione uma nova chave na Escolha um arquivo de chave com nome forte caixa.Você pode gerar sua própria chave nesse ponto ou usar o sn.exe utilitário para gerar uma nova chave.Ou se você tiver sua própria política para criação de chaves, siga-a.O sn.exe utilitário pode ser encontrado no tools pasta do estúdio de robótica.

  4. No Criar eventos edição da guia Linha de comando do evento pós-compilação:

    dssproxy.exe /dll:"$(TargetPath)" /proxyprojectpath:"$(ProjectDir)Proxy" /keyfile:"$(SolutionDir)Key.snk" $(ProxyDelaySign) $(CompactFrameworkProxyGen) /binpath:"." @(ReferencePath->'/referencepath:"%(RootDir)%(Directory) "', ' ')

    Preste atenção ao argumento para /keyfile.Insira uma expressão que localize o arquivo de chave de nome forte criado na etapa anterior.

  5. Copie os arquivos DssHost.exe e DssHost.exe.config (ou DssHost32.exe e DssHost32.exe.config para o serviço de hospedagem de 32 bits) da pasta bin do Robotics Studio para a pasta do projeto e adicione esses arquivos ao projeto.Colocou o Criar ação para Contente e Copiar para diretório de saída para Copie se for mais recente.Faça o mesmo para arquivo de manifesto para o seu serviço.Na verdade, o arquivo de manifesto não precisa estar na mesma pasta que o serviço, mas copiá-lo para a pasta de saída permite fazer a implantação do XCOPY.

  6. No Depurar guia alterar o Iniciar programa externo para o DssHost.exe na pasta de saída do seu projeto.Você terá que construir o projeto uma vez para copiar o arquivo para a pasta de saída.Limpar o Diretório de trabalho.Colocou o Argumentos de linha de comando para

    /p:50000 /t:50001 /m:DSSService1.manifest.xml

    Altere o nome do arquivo de manifesto para o nome adequado em seu projeto.Você pode modificar os números de porta usados ​​aqui ou no DssHost.exe.config arquivo.Se você estiver executando em um ambiente Windows protegido (UAC), você terá que usar o httpreserve comando para ter acesso a uma porta específica.Você deve executar este comando como administrador.

    As configurações de depuração não são armazenadas no arquivo do projeto e cada desenvolvedor terá que criar configurações pessoais.

Você também deve atualizar o Liberar configuração em conformidade.

Outras dicas

Como eu estava interessado apenas no CCR da MS Robotics, acabei de adicionar esses assemblies como uma referência a qualquer projeto com o qual eu o uso e apenas terminei com ele.

Isso funciona sem problemas. Portanto, se você também estiver interessado apenas na parte do CCR e DSS do estúdio, essa pode ser sua solução

Reinier

Vemos muito esse problema. A solução mais fácil é especificar o diretório de instalação ao instalar o Robotics Studio para ser "C: Arquivos de Programas Microsoft Robotics Studio". Dessa forma, mover o código entre máquinas, verificar o controle de origem, etc, torna -se muito menos problemático.

A outra opção é usar o DSSProjectMigration, incluído no RDS. Basta executar o DSSProjectMigration contra o diretório do projeto e corrigirá todos os caminhos codificados.

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