替代的FileStream在C#.NET [英] Alternative to FileStream in C# .NET
问题描述
在一个Visual Studio环境,项目A(ASP.NET)引用项目B(C#)在我的解决方案是这样的:
In an Visual Studio environment, Project A (ASP.NET) references Project B (C#) in my solution like this:
Solution
├─Project B
│ ├─data.txt
│ └─process.cs (a class BB with static initialization new FileStream("data.txt"))
└ Project A (referencces Project B)
├─bin
│ └─data.txt (copied from project B each time project B changes)
└─Controllers
└─mycontroller.cs (references the class BB)
现在的问题是,当我运行的应用程序,工作目录是 C:\ Program Files文件(x86)的\ IIS防爆preSS \
,使数据.TXT不能从 process.cs
的编译版本,这是在读斌
。
The problem is that when I run the application, the working directory is C:\Program Files (x86)\IIS Express\
, so that data.txt cannot be read from the compiled version of process.cs
which is in bin
.
目前,要解决这个问题,我手动复制的data.txt
到这个文件夹,但这种方法是不可行的。
需要注意的是改变B必须是相干取决于B之外的项目,这是不是所有的ASP.NET项目。
For the moment, to solve the problem, I manually copied data.txt
to this folder, but this solution is not viable.
Note that changes to B must be coherent with other projects depending on B, which are not all ASP.NET project.
什么改变了我应该做这样的data.txt
是从我的项目访问,无需依靠我复制的data.txt
文件到 IIS防爆preSS
目录?
What changes should I make so that data.txt
is accessible from my project without relying on me to copy the data.txt
file to the IIS Express
directory?
我想端口我的程序的Azure在线,我不能依靠这种方法。感谢您的帮助。
I would like to port my program to Azure Online and I cannot rely on this method. Thank you for your help.
其他链接答案:
- This answer is ASP.NET - specific, I cannot add server.MapPath because the project does not know about it.
- This answer references project paths, but does not give me an hint about how to modify them.
推荐答案
注意改变B必须是相干取决于B之外的项目,这是不是所有的ASP.NET项目
"Note that changes to B must be coherent with other projects depending on B, which are not all ASP.NET project"
不知道什么相干,就意味着你的依赖项目B上的其他项目背景下... 但是,下列选项浮现在脑海中 -
Not sure what coherent would mean to you in context of other projects which depend on project B... But following options come to mind -
-
嵌入的data.txt作为项目B.项目B产生组装的资源,就可以读取该文件作为资源(这是假设,文件内容不需要构建后进行修改) 见ResourceManager类来处理嵌入组件的资源。 的http://msdn.microsoft.com/en-us/library/system.resources.resourcemanager(v=vs.110).aspx
Embed data.txt as a resource in the assembly generated for project B. Project B, can then read the file as a resource (This assumes, file contents do not need to be modified after the build) See ResourceManager class for handling resources embedded in assemblies. http://msdn.microsoft.com/en-us/library/system.resources.resourcemanager(v=vs.110).aspx
如果它适用于项目B,扫描子目录的文件的所有客户。这是更hackish的..但实际上取决于场景B项目。
If it works for all clients of Project B, scan sub-directories for the file.. This is more hackish.. but really depends on the scenarios for project B.
这篇关于替代的FileStream在C#.NET的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!