【发布时间】:2016-09-16 14:56:50
【问题描述】:
这个问题跟随我的previous question。 我有一个 c# ASP.NET 应用程序,我想为插件提供支持。插件可以是自定义c#类、javascript、html、css、图片等。
只要我的应用程序使用 c# 类扩展,我认为没有问题,因为用户所要做的就是在 Visual Studio 中创建一个新的“类库”项目并实现我提供的接口。然后从中构建一个dll并将其上传到我的服务器。插件开发者也可以将静态文件(html、js、css等)添加到这个项目中,但我发现了一些问题:
- 我添加到插件项目中的每个静态文件都会获取构建操作“内容”,而且我似乎无法从我的服务器读取这些文件。 (见我的previously answered question)。我必须在每个文件上手动选择“嵌入式资源”,因此它包含插件 dll。
- 我想为插件支持 Typescript。 Typescript 编译器在与 typescript-files 相同的目录中生成 javascript 文件。但是 javascript 文件不包含在项目中,因此我必须将它们包含在插件项目中,然后设置正确的构建操作。我不希望插件开发者一直这样做。
- 如果静态文件具有构建操作“嵌入式资源”,则服务器可以使用 assembly.GetManifestResourceNames() 方法获取这些文件。此方法将资源作为字符串返回。路径不是用 \ 或 / 分隔,而是用点分隔。所以我无法区分文件路径(这是相关的)或文件名(也与拾取正确的文件相关),因为原始文件名也可以有点。
所以我开始质疑“类库”项目类型是否适合我的需求。有没有办法解决我的问题,还是我必须使用其他项目类型?
感谢您的帮助!
编辑:稍微改变了问题,以便更好地理解。
【问题讨论】:
-
我很困惑。您正在谈论插件,但您正在谈论将文件添加到项目中。你的插件不应该是单独的项目吗?
-
@itsme86 OP 只是假设您已经阅读了他们之前的所有问题并了解有关他们项目的所有详细信息 - 就像一个积极的贡献者......公平的假设,但并不完全适合 SO。跨度>
-
对不起。我说的是向插件项目添加文件。所以插件本身是一个构建 dll 的“类库”项目。此 dll 是将由服务器加载的插件。该插件不仅需要包含 c# 类,还需要包含 html 或 typescript 生成的 javascript 等静态文件。
标签: c# asp.net visual-studio plugins typescript