gpt4 book ai didi

c# - "Copy if newer"文件更新时为什么不复制文件?

转载 作者:太空狗 更新时间:2023-10-29 21:55:58 25 4
gpt4 key购买 nike

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

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

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

我在我的解决方案中创建了一个名为“schemas”的文件夹来保存 XML 文件,并将构建操作设置为Content,并将“复制到输出目录”的值设置为Copy if newer .

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

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

最佳答案

It seems to work also in Visual Studio 2008 Team System - must be Expression edition specific, so cannot repro...

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

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

...或者您可以使用预构建事件? (项目属性 - 构建事件):

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

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

关于c# - "Copy if newer"文件更新时为什么不复制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2229920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com