Service Fabric 应用程序的根目录
Service Fabric application's root directory
在我的代码中我失败了
if (!File.Exists(_configurationFileName)) {...}
我立即 window 拨打了 Directory.GetCurrentDirectory()
电话,它指向“work”文件夹而不是“code”我期望的文件夹。
Directory.GetCurrentDirectory()
"C:\SfDevCluster\Data\_App\_Node_0\My.Application.Type_App2\work"
所以我的配置文件就在可执行文件旁边,当然找不到了。
现在我想知道解决方案是什么。
因为我还想保留 运行 控制台应用程序,所以我不想实施任何 "if service fabric hosting, then change current directory, ..." 解决方法。
有什么建议吗?我的 .exe.config 文件怎么办(如果我有,如何找到它们)?
Service Fabric 将当前目录设置为 "work" 的原因是什么?这是某种安全机制吗?
您可以 select 在属性中将操作构建为 'content' 和 select 'copy if newer',以便将其复制到输出文件夹。
您可以做一些简单的反射并获取执行程序集所在的文件夹,然后在该位置引用该文件。我成功地为我需要的辅助文件完成了此操作,该文件部署到与我的可执行文件相同的文件夹中。
string exePath = System.Reflection.Assembly.GetExecutingAssembly().Location;
string filePath = Path.Combine(Path.GetDirectoryName(exePath), "myfilename.txt");
这就是我刚刚将服务清单更改为指向代码的方式
<EntryPoint>
<ExeHost>
<Program>configui.exe</Program>
<WorkingFolder>CodePackage</WorkingFolder>
</ExeHost>
</EntryPoint>
将 "Application Debug Mode" 设置为 "Keep Application" 解决了我遇到的类似问题,我的文件没有被复制到本地服务结构上的最终部署区域。
它已设置为 "Refresh Application",在我键入此内容时处于预览状态。但是那个模式没有复制我的 wwwroot 文件夹,所以我的视图引擎(在这种情况下是 Nancy)没有找到我的视图。
右键单击您的服务结构项目 > 属性 > 应用程序 > 应用程序调试模式 > 保留应用程序
在我的代码中我失败了
if (!File.Exists(_configurationFileName)) {...}
我立即 window 拨打了 Directory.GetCurrentDirectory()
电话,它指向“work”文件夹而不是“code”我期望的文件夹。
Directory.GetCurrentDirectory()
"C:\SfDevCluster\Data\_App\_Node_0\My.Application.Type_App2\work"
所以我的配置文件就在可执行文件旁边,当然找不到了。
现在我想知道解决方案是什么。
因为我还想保留 运行 控制台应用程序,所以我不想实施任何 "if service fabric hosting, then change current directory, ..." 解决方法。
有什么建议吗?我的 .exe.config 文件怎么办(如果我有,如何找到它们)?
Service Fabric 将当前目录设置为 "work" 的原因是什么?这是某种安全机制吗?
您可以 select 在属性中将操作构建为 'content' 和 select 'copy if newer',以便将其复制到输出文件夹。
您可以做一些简单的反射并获取执行程序集所在的文件夹,然后在该位置引用该文件。我成功地为我需要的辅助文件完成了此操作,该文件部署到与我的可执行文件相同的文件夹中。
string exePath = System.Reflection.Assembly.GetExecutingAssembly().Location;
string filePath = Path.Combine(Path.GetDirectoryName(exePath), "myfilename.txt");
这就是我刚刚将服务清单更改为指向代码的方式
<EntryPoint>
<ExeHost>
<Program>configui.exe</Program>
<WorkingFolder>CodePackage</WorkingFolder>
</ExeHost>
</EntryPoint>
将 "Application Debug Mode" 设置为 "Keep Application" 解决了我遇到的类似问题,我的文件没有被复制到本地服务结构上的最终部署区域。
它已设置为 "Refresh Application",在我键入此内容时处于预览状态。但是那个模式没有复制我的 wwwroot 文件夹,所以我的视图引擎(在这种情况下是 Nancy)没有找到我的视图。
右键单击您的服务结构项目 > 属性 > 应用程序 > 应用程序调试模式 > 保留应用程序