2016-12-22 29 views
-1

我想发表我的C#Windows窗体应用程序,但我面对的是说,下列文件找不到的问题来查找文件: ExpiryDate.xml & LastDate.xml发布WinForm应用程序无法同时它们的存在

System.IO.FileNotFoundException:找不到文件'Resources \ LastDate.xml'。 文件名: '资源\ LastDate.xml'

System.IO.FileNotFoundException:未能找到文件“C:\用户\ Shebel阿里\应用程序数据\本地\ APPS \ 2.0 \ E24DY4JB.C3R \ ZPYV9EGG.4TR \ hsar..tion_8b6b4b078cd8a46c_0001.0001_ab66389ef64fd1d7 \资源\ ExpiryDate.xml”。 文件名: 'C:\用户\ Shebel阿里\应用程序数据\本地\ APPS \ 2.0 \ E24DY4JB.C3R \ ZPYV9EGG.4TR \ hsar..tion_8b6b4b078cd8a46c_0001.0001_ab66389ef64fd1d7 \资源\ ExpiryDate.xml'

而如果我探索发布的应用程序文件夹,我可以看到那里的文件,但扩展名为LastDate.xml.deployExpiryDate.xml.deploy

有什么想法吗?

+0

您是否将XML文件添加为资源(.resx)文件的引用?在这种情况下,它不会被添加到输出目录。 – Sefe

+0

你如何“发布”应用程序?创建生产版本的常规方法是将项目构建为“Release”配置,然后将所有内容都放在输出文件夹中(通常为'bin \ Release',或对于32位应用程序为'bin \ x86 \ Release'),但_(appname).vshost.exe_文件。 – Nyerguds

+0

@Sefe是的我已经按照你提到的方式添加了这些文件,请提供任何理由/解决方案吗? –

回答

0

看起来好像你已经在你的应用程序中引用了你的LastDate.xml文件.resx文件。在这种情况下,您的XML文件的内容在构建过程中变为资源,您可以从资源访问XML数据(假设您的示例中资源文件为MyXmlResources.resx,并且该文件中的资源名称是LastDate):

var lastDate = MyXmlResources.LastDate; 

没有必要从光盘加载XML数据,你也应该这样做,因为你的XML文件,将不会对目标目录。

+0

谢谢Sefe,我现在明白了你的观点,但我仍然怀疑你最后说了些什么,如果我将'xml'文件的属性“复制到输出目录”设置为“始终复制”,这将不允许将文件放入目标目录中! –

+0

@AliAlhamaly:它会在那里建立,但是_publish_可以是一个不同的故事。无论如何,当你在资源中拥有文件时,复制文件没有意义。 – Sefe

相关问题