Visual studio 在VisualStudio中使用XSLT

Visual studio 在VisualStudio中使用XSLT,visual-studio,xslt,Visual Studio,Xslt,在我的C#客户端应用程序中,我使用XSLT将XML转换为HTML 我希望能够就地编辑这些文件,而不必重新编译整个解决方案。我无法确定如何设置VisualStudio2008以允许此操作 问题是XSLT文件必须以某种方式复制到输出目录。目前,这发生在构建过程中。(我的XSLT文件被设置为“如果更新就复制”。)构建过程可能需要几分钟,这对于对HTML进行小的调整来说似乎太多了 我可以在输出目录本身中进行XSLT编辑,但输出目录不受源代码控制。通过构建解决方案,我意外地删除了几次快速编辑 我希望减少调

在我的C#客户端应用程序中,我使用XSLT将XML转换为HTML

我希望能够就地编辑这些文件,而不必重新编译整个解决方案。我无法确定如何设置VisualStudio2008以允许此操作

问题是XSLT文件必须以某种方式复制到输出目录。目前,这发生在构建过程中。(我的XSLT文件被设置为“如果更新就复制”。)构建过程可能需要几分钟,这对于对HTML进行小的调整来说似乎太多了

我可以在输出目录本身中进行XSLT编辑,但输出目录不受源代码控制。通过构建解决方案,我意外地删除了几次快速编辑

我希望减少调试XSLT的周期时间,同时将XSLT文件置于源代码控制之下并防止意外覆盖

响应摘要:鉴于Visual Studio没有现成的解决方法,解决此问题的最实用方法似乎是创建一个包含内容文件的单独项目。生成项目时,这些文件将复制到输出位置。这样我就不必编译整个解决方案,只需一个包含所有静态信息(如XSLT、CSS、图像等)的项目


有几个人建议使用同步或批复制工具,但虽然这对我个人来说是可行的,但为团队的其他成员设置它也将是一项额外的工作。

您可以直接在输出文件夹中编辑文件

另一方面,很多人不知道VS中内置了丰富的工具来调试XSLT


一种方法是在调试模式下将my XSLT load函数指向解决方案目录,但在执行发布构建时指向输出目录

比如:

string viewFolder = AppDomain.CurrentDomain.BaseDirectory;

#if DEBUG
// Move up from /bin/debug
viewFolder = viewFolder + @"..\..\";
#endif

但这感觉像是一种黑客行为。

我不完全清楚您的问题,但您可以指示Visual Studio在每次构建时将文件从解决方案复制到输出文件夹

让我试着了解一下您的情况:

  • 您将XSLT文件与C代码一起签入源代码管理。例如,如果项目位于名为MyProj的文件夹中,则XSLT文件位于MyProj/Templates中
  • 您希望能够编辑Templates文件夹中的xslt文件,并将这些更改提交到源代码管理,就像您对项目中的.cs或其他文件所做的那样
  • 您希望在bin/Debug或bin/Release文件夹中有xslt文件的副本以及可执行文件

如果是这种情况,请将XSLT文件添加到VisualStudio项目中。然后右键单击它们,打开属性,并设置“构建操作”=“内容”和“复制到输出目录”=“始终”。无论何时构建项目,XSLT文件的最新副本都将放在您的bin/Debug或bin/Release目录中。

一个可能适合您的解决方案是在输出文件夹中为您的
模板设置一个。这将允许您直接使用XSLT,而无需将它们复制到输出文件夹。一个好主意是确保(创建)作为构建操作的连接

先决条件:

  • NTFS
  • 用于创建连接的工具(例如)

您是否可以使用文件同步程序(例如Microsoft“是一个在不同位置之间同步文件和文件夹的免费应用程序”)来复制文件?这将允许您避免“在生成时复制”步骤,因为文件在保存后会自动复制。此外,如果您在输出目录中编辑了它们,则可以将更改复制回源代码控制目录。对于这种情况,最佳的实时同步程序不是什么,但这可能是另一个问题

  • 创建一个批处理文件,将xslt从源代码控制位置复制到所有bin目录(bin/debug bin/release或您定义的任何目录)
  • 将批处理文件添加为,可以选择指定击键(或和弦)以执行批处理文件
  • 编辑,运行这个工具(我会给它分配一个按键,使它更容易),然后检查你的网页

  • 显然你在一个项目中管理两个问题。第一个问题是您的业务逻辑(实例化XSLT转换,调用它转换一些XML内容,输出HTML结果……)。第二个问题是转型本身

    那么,为什么不为xslt工作表创建一个单独的项目呢?“构建”此项目包括将图纸复制到输出文件夹。更改xslt不会影响其他项目,因此可以缩短构建时间


    在项目级别分离关注点,即:)

    我有完全相同的问题。我买了一个名为ViceVersa()的程序,在这个程序中我设置了同步配置文件,以便在做出任何更改后,我的css、布局和xslt文件夹都能从我的机器同步到我的开发服务器。如果我对代码做了任何更改,那么我会正常发布。

    我知道这是一篇较旧的文章,但我找到了一个基本相同问题的不同解决方案

    Visual Studio允许您“链接”文件

    右键单击解决方案中要放置文件链接的文件夹

    点击

    “添加”

    “现有项目…”

    (选择文件)


    转到“添加”下拉列表并选择“添加为链接”

    编辑输出文件夹中的文件时遇到的问题是,在完成编辑后,请记住更新解决方案中的版本。解决方案中的版本是在源代码控制下的版本。这有点像黑客,但你将该文件放在了项目中。你能用相对路径提取文件吗?。\\folder\file.xslt?相对路径不起作用,因为文件在树中处于不同的级别。在项目的输出目录中包含XSLT文件会导致问题