No Visual Studio (2008) há uma maneira de ter um arquivo dependente costume em outro arquivo personalizado?

StackOverflow https://stackoverflow.com/questions/727898

Pergunta

Em vez de código de um * .cs atrás ou ao lado eu gostaria de ter um arquivo * .js. Estou desenvolvendo um aplicativo MVC um não tem necessidade de um código de lado porque eu tenho controladores, mas em certos casos, seria bom ter um código JavaScript ao lado ou alguma maneira de associar o arquivo para a página que está sendo usado por diante. Acho que eu poderia apenas nomeá-los da mesma forma, mas eu estou querendo mostrar a associação, se possível, por isso não há dúvida sobre o que o arquivo é para.

Normalmente o que eu estou falando é dentro do Visual Studio agora sob o seu arquivo global terá um sinal de mais para a esquerda:

+ Global.asax

Uma vez que você expandi-lo você terá

- Global.asax
    Global.asax.cs

Eu gostaria que a mesma coisa aconteça:

+ Home.spark

- Home.spark
    Home.spark.js

Atualizado:

Meu arquivo csproj existente tem um caminho para o arquivo real, não tenho certeza se isso é estragar tudo. Eu tenho atualmente:

<ItemGroup>
    <Content Include="Views\User\Profile.spark.js">
      <DependentUpon>Views\User\Profile.spark</DependentUpon>
    </Content>
  </ItemGroup>
  <ItemGroup>
    <Content Include="Views\User\Profile.spark" />
  </ItemGroup>

e é simplesmente mostrando os arquivos, além de outro.

Foi útil?

Solução

Absolutamente - mas você terá que editar o arquivo de projeto com a mão. Encontrar a entrada do arquivo de "criança", e alterá-lo para ser um elemento não-auto-fechamento, e adicionar um elemento filho para dizer o que ele depende. Aqui está um exemplo de um arquivo .cs sendo compilado:

<Compile Include="AssertCount.cs">
  <DependentUpon>MoreEnumerable.cs</DependentUpon>
</Compile>

E aqui está uma versão Acabei zombou-se para os arquivos que você especificou - embora eu espere Home.spark terá uma ação associada a ele, em vez de "Nenhum":

<ItemGroup>
  <Content Include="Home.spark.js">
    <DependentUpon>Home.spark</DependentUpon>
  </Content>
</ItemGroup>
<ItemGroup>
  <None Include="Home.spark" />
</ItemGroup>

exibe Visual Studio-lo apenas como você esperaria que ele.

Outras dicas

VSCommands add-in que permitem configurar os arquivos dependentes diretamente do IDE

link atualizado, anterior era http://mokosh.co.uk/vscommands

FYI: Quando VSCommands está instalado, basta selecionar todos os arquivos que você quer ser dependente e o arquivo de raiz, em seguida, clique direito -> itens do grupo ... e VSCommands vai pedir que os arquivos que você gostaria de ser a raiz Arquivo.

Eu não sei como você pode fazê-lo através do Visual Studio próprio UI, mas se você abrir o arquivo csproj num editor de texto, você pode ver como eles fazem isso para Global.asax.

Geralmente é algo como isto:

<Compile Include="Global.asax" />
<Compile Include="Global.asax.cs">
    <DependentUpon>Global.asax</DependentUpon>
</Compile>

Enquanto as demais soluções aqui (editando o arquivo de projeto) de trabalho para arquivos individuais, nós fizemos a mesma coisa, mas quer que ele funcione automagicamente para todos * .conv e arquivos * .conv.js invés de ter que editar o arquivo de projeto para cada um.

Quando adicionar um novo arquivo .conv ao nosso aplicativo, se temos a * .conv.js arquivá-lo automaticamente ninhos sob ele como você esperaria com .aspx e * .aspx.cs.

Não consigo encontrar o tutorial original eu utilizado para configurar isso (que faz registro envolvidos hacking), mas aqui é um I encontrados a partir de uma pesquisa do Google agora que descreve a mesma coisa:

http: //blog.dotnetwise .com / 2009/09 / visual-studio-2008-custom-nested-files.html

Se você precisa adicionar code-behind para algum arquivo existe uma solução. Por exemplo, você quer ter a Test.xaml.cs uma criança de Test.xaml . Conclua as seguintes etapas:

  1. Excluir tanto Test.xaml e Test.xaml.cs do projeto, salve projeto.

  2. projeto Descarregar.

  3. projeto Reload.

  4. Clique em "Mostrar arquivos ocultos" no painel File Explorer.

  5. Arquivo Test.xaml.cs será exibido como filho de Test.xaml .

  6. Adicionar arquivos de volta para projeto, salve projeto.

É isso. Agora Test.xaml.cs é dependente de Test.xaml .

Você pode editar manualmente o arquivo de projeto, tem John Skeed sugerido, ou você também pode ter um olhar sobre o Arquivo Assentamento Extension for Visual Studio que irá fazer o trabalho para você.

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