繁体   English   中英

为什么“如果更新则复制”在文件更新时不复制文件?

[英]Why does “Copy if newer” not copy a file when the file is updated?

我在Visual Studio Express中有一个如下所示的解决方案:

C#中的LogicSchema类,它将在运行时解析指定的XML文件。 以下是Program.csmain方法:

LogicSchema ls = new LogicSchema(
    XDocument.Load(
        "schemas\\C#Schema.xml",
        LoadOptions.PreserveWhitespace));

我在我的解决方案中创建了一个名为“schemas”的文件夹,用于保存XML文件并将Build Action设置为Content ,并将“Copy to Output Directory”值设置为Copy for new

我的期望是,如果在记事本中打开文件,进行更改并保存,当我按F5时,XML文件的更新版本将被复制到输出目录(在本例中为bin \\ debug)。 但是,除非我选择Rebuild,否则更新的文件不会复制到输出目录。 常规构建不起作用。

我需要更改什么,以便在按F5时,文件在更新时被复制到输出目录中?

它似乎也适用于Visual Studio 2008 Team System - 必须是Expression版本特定的,所以无法重现...

好吧,我最初的猜测不正确 - 它是关于引用库中的XML文件。 现在可以重复它。

我认为最自然的方式是将XML作为资源嵌入,然后使用GetManifestResourceStream()读取它。 这样,即使您直接引用dll而不是通过项目引用,XML文件也会在您引用它时跟随您的dll而不单独复制它。

...或者你可以使用Pre-build活动? (项目属性 - 构建事件):

copy $(ProjectDir)test.xml $(SolutiontDir)projectFolder\bin\debug\test.xml

我认为即使VS认为没有源文件发生变化,它也会一直运行。 至少完全VS2008就是这种情况 - 刚刚测试过。

暂无
暂无

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

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