【问题标题】:wpf prism mef visual studio project filewpf prism mef Visual Studio 项目文件
【发布时间】:2015-02-27 10:29:51
【问题描述】:

我有一个 WPF/Prism 4.0/MEF(MVVM) 应用程序。一切运行/加载正常,除非我更改项目文件。

有效的版本包含以下内容,但项目浏览器未将 *.cs 代码隐藏文件正确加载到树层次结构中。代码隐藏文件插入到与 *.xaml 文件相同的树级别:

<ItemGroup>
   <Compile Include="Models\MainProjectDataModel.cs" />
   <Compile Include="ViewModels\MainProjectDataViewModel.cs" />
   <Compile Include="ViewModels\MainWindowViewModel.cs" />
   <Compile Include="Views\MainMenuView.xaml.cs" />
   <Compile Include="Views\MainProjectDataView.xaml.cs" />
   <Compile Include="Views\MainToolbarView.xaml.cs" />
   <Page Include="Views\MainMenuView.xaml">
     <Generator>MSBuild:Compile</Generator>
     <SubType>Designer</SubType>
   </Page>
   <Page Include="Views\MainProjectDataView.xaml">
     <Generator>MSBuild:Compile</Generator>
     <SubType>Designer</SubType>
   </Page>
   <Page Include="Views\MainToolbarView.xaml">
     <Generator>MSBuild:Compile</Generator>
     <SubType>Designer</SubType>
   </Page>
</ItemGroup>

此版本正确加载树,但在编译/生成过程中破坏了某些内容 - 因此找不到与菜单/工具栏/数据关联的区域:

<ItemGroup>
   <Compile Include="Models\MainProjectDataModel.cs" />
   <Compile Include="ViewModels\MainProjectDataViewModel.cs" />
   <Compile Include="ViewModels\MainWindowViewModel.cs" />
</ItemGroup>

<ItemGroup>
   <Page Include="Views\MainMenuView.xaml">
     <Generator>MSBuild:Compile</Generator>
     <SubType>Designer</SubType>
   </Page>
   <Page Include="Views\MainProjectDataView.xaml">
     <Generator>MSBuild:Compile</Generator>
     <SubType>Designer</SubType>
   </Page>
   <Page Include="Views\MainToolbarView.xaml">
     <Generator>MSBuild:Compile</Generator>
     <SubType>Designer</SubType>
   </Page>
</ItemGroup>    

我尝试将“”标记添加到已编译的文件中(按照为 app.xaml 和 Shell.xaml 生成的代码,但树仍然填充不正确。

<Compile Include="Views\MainMenuView.xaml.cs">
  <DependentUpon>Views\MainMenuView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\MainProjectDataView.xaml.cs">
  <DependentUpon>Views\MainProjectDataView</DependentUpon>
</Compile>
<Compile Include="Views\MainToolbarView.xaml.cs"> 
  <DependentUpon>Views\MainToolbarView.xaml</DependentUpon>
</Compile>
<Page Include="Views\MainMenuView.xaml">
  <Generator>MSBuild:Compile</Generator>
  <SubType>Designer</SubType>
</Page>
<Page Include="Views\MainProjectDataView.xaml">
  <Generator>MSBuild:Compile</Generator>
  <SubType>Designer</SubType>
</Page>
<Page Include="Views\MainToolbarView.xaml">
  <Generator>MSBuild:Compile</Generator>
  <SubType>Designer</SubType>
</Page>

当然,这是一个令人烦恼的问题,而不是真正的错误 - 但什么给了?我在 MSBuild 上找到了文档——希望这是正确的地方。我对吗?那里有很多东西,我现在不想一劳永逸 - 有谁知道我应该在文档中的哪个位置查看或这里发生了什么?

【问题讨论】:

    标签: wpf visual-studio-2013 msbuild projects-and-solutions


    【解决方案1】:

    删除DependentUpon节点的Views\部分:

    <Compile Include="Views\MainToolbarView.xaml.cs"> 
      <DependentUpon>MainToolbarView.xaml</DependentUpon>
    </Compile>
    

    Include 需要相对于项目文件的路径,DependentUpon 是相对于 .cs 文件的路径 - 因此在几乎所有情况下,这些文件将彼此相邻,因此不需要额外的路径命名法.

    【讨论】:

    • 没问题,我过去已经修复过很多次了。
    猜你喜欢
    • 2015-02-03
    • 1970-01-01
    • 1970-01-01
    • 2013-10-06
    • 2017-07-03
    • 1970-01-01
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多