[英]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.cs
和xaml
文件都单独并排显示,而不是在结构中( 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.