原因:在我的other question之后并使用this approach,现在我想简单地将源文件嵌入到资源中,以便在应用程序运行时将其复制到临时文件夹 – 并将应用程序保存为单个文件.
我假设使用预构建事件是执行此操作的最佳方法.如果是这样,它会怎么做?
解决方法
我最终得到的方法如下.
>我创建了一个批处理脚本(在预构建中运行),将/ Examples / *下的所有代码文件复制到解决方案Resources / ExamplesSrc / *中的另一个文件夹中
>然后我将所有这些文件包含在csproj中的Resources / ExamplesSrc / *下并保存.
>下一步是我将Resources / ExamplesSrc / *下的所有文件设置为嵌入资源,并将更改提交给SVN.我没有将示例(生成)提交给SVN,只修改了csproj和批处理文件.
开发人员检查时的效果是他们在所有资源上都有(!)图标(它们不在磁盘上,但是csproj正在寻找它们),但是一旦他们构建了生成的文件,一切都很好.这种方法也适用于构建服务器(Team city),示例套件现在可以通过嵌入式资源加载和浏览自己的代码.
你应该注意一个警告. VS2010中有一个怪癖(显然是设计).如果嵌入式资源中包含“.cs”(即任何代码文件!),则无法使用Assembly.GetManifestResourceStream()从程序集加载它.要解决此问题,所有源文件都在批处理复制步骤中从* .Xaml.cs重命名为* .Xaml.c.txt,从* .cs重命名为* .c.txt
希望这可以帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。