wpf 棱镜 mef visual studio 项目文件
wpf prism mef visual studio project file
我有一个 WPF/Prism 4.0/MEF(MVVM) 应用程序。一切 runs/loads 都很好,除了我更改项目文件时。
有效的版本包含以下内容,但项目浏览器未将 *.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>
此版本正确加载了树,但在 compile/generation 期间破坏了某些内容 - 因此找不到与 menu/toolbar/data 关联的区域:
<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 的文档 - 希望这是正确的地方。我对吗?那里有很多东西,我不想现在就全部看完 - 有谁知道我应该看文档中的什么地方或者这里发生了什么?
删除DependentUpon
节点的Views\
部分:
<Compile Include="Views\MainToolbarView.xaml.cs">
<DependentUpon>MainToolbarView.xaml</DependentUpon>
</Compile>
Include
需要一个相对于项目文件的路径,而 DependentUpon
是一个相对于 .cs 文件的路径 - 所以在几乎所有情况下,这些文件都将彼此相邻,因此不需要额外的路径命名法。
我有一个 WPF/Prism 4.0/MEF(MVVM) 应用程序。一切 runs/loads 都很好,除了我更改项目文件时。
有效的版本包含以下内容,但项目浏览器未将 *.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>
此版本正确加载了树,但在 compile/generation 期间破坏了某些内容 - 因此找不到与 menu/toolbar/data 关联的区域:
<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>
我已经尝试将“
<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 的文档 - 希望这是正确的地方。我对吗?那里有很多东西,我不想现在就全部看完 - 有谁知道我应该看文档中的什么地方或者这里发生了什么?
删除DependentUpon
节点的Views\
部分:
<Compile Include="Views\MainToolbarView.xaml.cs">
<DependentUpon>MainToolbarView.xaml</DependentUpon>
</Compile>
Include
需要一个相对于项目文件的路径,而 DependentUpon
是一个相对于 .cs 文件的路径 - 所以在几乎所有情况下,这些文件都将彼此相邻,因此不需要额外的路径命名法。