在VIsual Studio 2015 Universal App中更改XAML文件的输出路径

时间:2016-08-23 23:26:56

标签: c# xaml win-universal-app windows-10-universal

我有一个用于编译某些xaml文件的通用Windows应用程序的VCXProj文件

<Page Include="..\View\ViewModel.xaml" />

其中一个结果是xaml文件作为资源部署为包的一部分:ms-appx:///AppNamespace/ViewModel.xaml

如果文件路径是&#34; View \ ViewModel.xaml&#34;那么资源路径也将是&#34; AppNamespace / View / ViewModel.xaml&#34;

不幸的是,由于它位于父目录中,因此它会变平并进入根目录。我想要一种方法来指定输出路径,而不是让MSBuild系统保留它,比如

<Page Include="..\View\ViewModel.xaml">
    <TargetPath>View\MyViewModel.xaml</TargetPath>
</Page>

但我不能为我的生活找到办法做到这一点。那里有什么东西吗?

1 个答案:

答案 0 :(得分:1)

我认为这是设计的,我无法在VS工具中找到可以指定xaml文件输出路径的选项。

默认情况下,如果您在项目中从VS创建一个View文件夹,并在此View文件夹中创建一个新页面,VS编译器将自动从View文件夹中提取该XAML文件并将其放在您的根文件夹中项目文件夹。即使您在VS中在项目中创建了一个文件夹,也不会在项目物理文件夹中实际创建该文件夹。

例如,我创建了一个名为&#34; Test&#34;的文件夹。来自VS,我将图像复制到此文件夹中。这张图片的路径实际上是这样的:<Image Include="C:\Users\(pc-account)\Pictures\1.jpeg" />,你找不到&#34;测试&#34;此项目的物理路径中的文件夹。现在,如果我们创建一个名为&#34; Test&#34;在物理路径中,不仅从VS,并将另一个图像复制到此文件夹,从你的VS打开这个项目,右键单击&#34;测试&#34;文件夹,通过添加现有项目来选择第二个图像到这个&#34;测试&#34;文件夹,然后你可以从VS看到:

enter image description here

在项目的Appx文件夹中,它看起来像这样:

enter image description here

如您所见,从VS添加到项目的第一个图像从Test文件夹中提取到根文件夹,并且第二个图像被手动添加到项目中仍然在Test文件夹中。

您可以在VCXProj文件中看到这两个图像的路径,如下所示:

enter image description here

我担心VS工具中没有可以自动执行此项工作的选项,我们只能

  1. 手动创建一个与从VS工具创建的文件夹同名的文件夹。

  2. 将.xaml,.xaml.cpp和.xaml.h文件复制到此手动创建的文件夹中。

  3. 将现有项目从vs添加到此文件夹。

  4. enter image description here

    1. 调试您的项目,然后您可以在Debug文件夹中看到此View2文件夹。
    2. enter image description here

      1. 同时,在你的VCXProj文件中你可以看到这个xaml页面的路径:
      2. enter image description here