繁体   English   中英

是否可以将 xaml.cs 连接到 VS2017 csproj 格式的对应 xaml?

[英]Is it possible to connect xaml.cs to corrsponding xaml in VS2017 csproj format?

由于 NuGet 打包的巨大优势,我将 C# 库的csproj文件转换为新的 Visual Studio 2017 格式,如下所述: Old csproj to new csproj: Visual Studio 2017 upgrade guide

现在,我的 WPF 用户控件的所有xaml.csxaml文件都单独并排显示,而不是在结构中( xaml.cs "inside" xaml )。 此外,我无法通过上下文菜单命令“查看代码”或“查看设计器”在它们之间切换。

我发现我可以通过在csproj文件中添加适当的条目来解决结构显示问题:

<Compile Include="SomeView.xaml.cs">
  <DependentUpon>SomeView.xaml</DependentUpon>
</Compile>

保存csproj文件后,需要一两秒钟,然后在项目资源管理器视图中直观地构建这两个项目。 不过,我仍然无法通过上下文菜单命令在它们之间切换。

此外,我在编译时收到错误NETSDK1022 ,告诉我那些编译元素现在加倍了(新的项目格式会自动添加所有合适的文件)。 可以通过将EnableDefaultCompileItems设置为false来禁用此机制,这是可行的。

有没有更好的方法来“绑定” xaml 及其新 VS2017 项目格式的代码隐藏文件?

(也许这是窗口项目尚未发布新项目格式的问题之一......)

Include替换为Update

从你的角度出发

新的项目格式会自动添加所有合适的文件

因为这一点,通常更喜欢使用Update而不是Include 只是这个。

假设默认情况下包含所有文件,当您使用“包含”一词时,您将添加一个已经存在的文件。 但是,如果您使用“更新”一词,则会更新已包含的文件。

我不认为针对 .NET Framework 的 WPF 项目正式支持切换到新的项目格式。 但是,当您面向 .NET Core 3 时,它将在 Visual Studio 2019 中受支持。

有这个新的Microsoft.NET.Sdk.WindowsDesktop SDK,它使用预览版中提供的以下最小.csproj文件构建 .NET Core WPF 项目,包括 XAML 文件:

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
    <PropertyGroup>
        <OutputType>WinExe</OutputType>
        <TargetFramework>netcoreapp3.0</TargetFramework>
        <UseWPF>true</UseWPF>
    </PropertyGroup>
</Project>

请参阅博客文章了解更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM